Ich habe einen Ordner mit dem Namen, music
in dem sich alle Künstlerordner befinden. Gibt es eine Möglichkeit , diese Ordner zu erstellen: 1. Albums
, 2. EP
, 3. Singles
, 4. Live
in allen Künstlern Ordner mit einem Befehl?
quelle
Ich habe einen Ordner mit dem Namen, music
in dem sich alle Künstlerordner befinden. Gibt es eine Möglichkeit , diese Ordner zu erstellen: 1. Albums
, 2. EP
, 3. Singles
, 4. Live
in allen Künstlern Ordner mit einem Befehl?
Führen Sie dies im Musikordner aus, in dem sich die Künstlerordner befinden:
for artist in */; do
for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
mkdir "$artist/$folder"
done
done
Sie können dies auf Ihrer CLI ausführen oder es zu einem Shell-Skript machen, indem Sie es #!/bin/sh
als erste Zeile hinzufügen und in einer Datei speichern. Vergessen Sie nicht, die Datei ausführbar zu machen.
Was es tut: Es iteriert über alle Verzeichnisse ( */
) innerhalb des aktuellen Verzeichnisses, dann für jedes dieser Verzeichnisse, iteriert über den gewünschten Unterordner (den zweiten for
) und erstellt dann den gewünschten (relativen) Unterordner.
Vielleicht möchten Sie Ihre {lockigen} Zahnspangen für diese anziehen
Für dieses Argument werden wir so tun, als ob ./music nicht existiert
In Ihrem Basisverzeichnis für ./music verwenden wir den Befehl -p, um bei Bedarf Unterverzeichnisse zu erstellen, und die geschweiften Klammern werden verwendet, um ein kleines Array zu erstellen
Der Befehl
-p
ist die Abkürzung für Parent. Wenn Sie sich leichter daran erinnern können, können Sie ihn--parent
stattdessen verwendenWenn Sie damit herumspielen möchten, können Sie zum Beispiel
Sie haben verschachtelte Ausdrücke, Sie können die geschweiften Klammern in die Mitte einer Zeichenfolge einfügen und Sie können auch zulassen, dass das Unterverzeichnis dem Beispiel folgt, und Sie können mit Ihren Unterverzeichnissen für ein bestimmtes Array spezifisch sein
Ich schlage vor, Sie erstellen irgendwo eine Datei, in der Sie mit solchen Befehlen Ihre eigenen Vorlagen erstellen und ihnen Beschreibungen geben können
Besuchen Sie diese Seite für weitere Informationen https://www.linuxjournal.com/content/bash-brace-expansion und https://www.linux.com/tutorials/all-about-curly-braces-bash/
quelle
music
, so dass die korrekte ARGmkdir
wäre./music/*/{"1. Albums","2. EP","3. Singles","4. Live"}
-p
ist die Kurzform von--parent
.