Estoy creando una secuencia de comandos de copia de seguridad rápida que volcará algunas bases de datos en una estructura de directorio agradable y ordenada y me di cuenta de que necesito probar para asegurarme de que los directorios existen antes de crearlos. El código que tengo funciona, pero parece que hay una mejor manera de hacerlo. ¿Alguna sugerencia?
[ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR"
[ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client"
[ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year"
[ -d "$BACKUP_DIR/$client/$year/$month" ] || mkdir "$BACKUP_DIR/$client/$year/$month"
[ -d "$BACKUP_DIR/$client/$year/$month/$day" ] || mkdir "$BACKUP_DIR/$client/$year/$month/$day"
bash
shell
recursion
subdirectory
Topher Fangio
fuente
fuente
Respuestas:
Puede usar el
-p
parámetro, que se documenta como :Entonces:
fuente
alias mkdirs=mkdir -p
fuente
Si bien las respuestas existentes definitivamente resuelven el propósito, si está buscando replicar la estructura de directorios anidados en dos subdirectorios diferentes, puede hacerlo
Creará la siguiente estructura de directorios bajo el directorio desde donde se invoca
El ejemplo fue tomado de este enlace para crear la estructura de directorios SBT
fuente
{...,...}
hay en bash y por qué tiene sentido lo que hace. Una breve explicación de la expansión de la llave sería beneficiosa para otros usuarios. Un "puedes hacer esto" y obtener "esto" deja un poco a la imaginación.fuente
newDir/
.