Ich erstelle ein schnelles Sicherungsskript, das einige Datenbanken in eine nette / ordentliche Verzeichnisstruktur kopiert, und mir wurde klar, dass ich testen muss, um sicherzustellen, dass die Verzeichnisse vorhanden sind, bevor ich sie erstelle. Der Code, den ich habe, funktioniert, aber es scheint, dass es einen besseren Weg gibt, dies zu tun. Irgendwelche Vorschläge?
[ -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
quelle
quelle
Antworten:
Sie können den
-p
Parameter verwenden, der wie folgt dokumentiert ist :So:
quelle
alias mkdirs=mkdir -p
quelle
Während vorhandene Antworten definitiv den Zweck lösen, können Sie dies tun, wenn Sie eine verschachtelte Verzeichnisstruktur unter zwei verschiedenen Unterverzeichnissen replizieren möchten
Es wird die folgende Verzeichnisstruktur unter dem Verzeichnis erstellt, von dem aus es aufgerufen wird
Das Beispiel wurde diesem Link zum Erstellen der SBT-Verzeichnisstruktur entnommen
quelle
{...,...}
in Bash ist und warum das, was Sie tun, Sinn macht. Eine kurze Erklärung der Klammererweiterung wäre für andere Benutzer von Vorteil. Ein "Sie können dies tun" und "dies" erhalten ein wenig der Fantasie überlassen.quelle
newDir/
.