Je suis en train de créer un script de sauvegarde rapide qui videra certaines bases de données dans une structure de répertoires Nice/neat et je me suis rendu compte que je devais effectuer un test pour vérifier que les répertoires existaient avant de les créer. Le code que j'ai a 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"
Vous pouvez utiliser le -p
paramètre, qui est documenté sous la forme :
-p, --parents
pas d'erreur si elle existe, créez des répertoires parents au besoin
Alors:
mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"
$ mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"
Tandis que les réponses existantes résolvent définitivement le but recherché, si vous souhaitez répliquer la structure de répertoires imbriqués sous deux sous-répertoires différents, vous pouvez le faire.
mkdir -p {main,test}/{resources,scala/com/company}
Il créera la structure de répertoire suivante sous le répertoire à partir duquel il est appelé
├── main
│ ├── resources
│ └── scala
│ └── com
│ └── company
└── test
├── resources
└── scala
└── com
└── company
L'exemple a été pris de ce lien pour créer une structure de répertoire SBT