Je crée un script de sauvegarde rapide qui videra certaines bases de données dans une structure de répertoires agréable / soignée et j'ai réalisé que je devais tester pour m'assurer que les répertoires existent avant de les créer. Le code que j'ai fonctionne, mais il semble qu'il existe une meilleure façon de le faire. Aucune suggestion?
[ -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
la source
la source
Réponses:
Vous pouvez utiliser le
-p
paramètre, qui est documenté comme :Alors:
la source
alias mkdirs=mkdir -p
la source
Bien que les réponses existantes résolvent définitivement le but, si vous cherchez à répliquer la structure de répertoires imbriqués sous deux sous-répertoires différents, vous pouvez le faire
Il créera la structure de répertoires suivante sous le répertoire à partir duquel il est appelé
L'exemple est tiré de ce lien pour créer une structure de répertoires SBT
la source
{...,...}
y a dans bash et pourquoi ce que vous faites a du sens. Une brève explication de l' expansion des accolades serait bénéfique pour les autres utilisateurs. Un "vous pouvez faire ceci" et obtenir "ceci" laisse un peu à l'imagination.la source
newDir/
.