Ich habe ein Bash-Skript, das eine Mischung aus Vorlagendateien und Daten verwendet, die hierarchisch in einem Verzeichnis mit dem Namen INPUT
angeordnet sind.Befehlszeilentool in Bash zum Erstellen von Verzeichnisbaum?
Das Skript führt Folgendes aus:
- Erstellt eine hierarchische Struktur Dateiausgabe,
OUTPUT
- Füllt den Dateibaum mit gefiltertem/nachverarbeiteten Daten.
- Führt einige externe Programme für die Visualisierung usw. dieser Daten aus.
Da ich dieses Skript möge möglichst portabel sein und macht es einfach für die Kollegen es zu laufen, ich will nicht von außen die OUTPUT
Ordnerstruktur Premake, ich will es on the fly generieren.
Leider schafft dies einen großen Text glob.
Zur Zeit habe ich so etwas wie:
$!/bin/bash
function MkdirAndAssign() { mkdir -p $1; echo $1; }
baseDir=$(pwd)
outDir=$(MkdirAndAssign ${baseDir}/OUTPUT)
outTop1Dir=$(MkdirAndAssign ${outDir}/TOP1)
outMid1_1Dir=$(MkdirAndAssign ${outTop1Dir}/MID1_1)
outMid1_2Dir=$(MkdirAndAssign ${outTop1Dir}/MID1_2)
outMid1_3Dir=$(MkdirAndAssign ${outTop1Dir}/MID1_3)
outBottom1_3_1Dir=$(MkdirAndAssign ${outMid1_3Dir})
outTop2Dir=$(MkdirAndAssign ${outDir}/TOP2)
outTop3Dir=$(MkdirAndAssign ${outDir}/TOP3)
outMid3_1Dir=$(MkdirAndAssign ${outTop1Dir}/MID3_1)
outMid3_2Dir=$(MkdirAndAssign ${outTop1Dir}/MID3_2)
Natürlich das sind nur Verzeichnisnamen aus ... meine wirklichen tatsächlichen Bedeutung haben ... aber das Wichtigste ist, ich bin den Aufbau dieser großen Satz verschachtelter Verzeichnisse.
Meine Frage:
Gibt es irgendeine Art von Shell-Befehl, der diese kürzer und süßer machen kann ??
(Anmerkung meine Funktion im Grunde wickelt nur mkdir -p
so, dass ich eine variable Zuordnung in einem Befehl bekommen, für eine spätere Wiederverwendung.)
Leider, ich glaube nicht, dass es ein anderes Werkzeug irgendwo versteckt, das machen würde es ist einfacher. Wenn Sie im laufenden Betrieb erstellen, ist die einzige andere Option, die ich sehe, ein Schema, in dem Sie die generierten Pfadkomponenten in einem Array (oder einem assoziativen Array) enthalten, das Sie dann in einem Schleifenschema zum Erstellen der Verzeichnisstruktur verwenden können habe die benötigten Daten. Ehrlich gesagt hört sich das nicht nach viel Nutzen an, aber es kann Dinge aufräumen, abhängig von Ihrer endgültigen Schleifenlogik (oder es noch schlimmer machen ...) Viel Glück. –
Schließen können Sie erhalten 'mkdir -p $ (pwd)/AUSGABE/TOP1/MID1_ {1,2,3} $ (pwd)/AUSGABE/TOP2 $ (pwd)/OUTPUT/TOP3/MID1_ {1,2} ' – 7171u
Ah, das ist clever/handy @ 7171u! Kannst du es zur Lösung bringen? Es bringt mich nah genug dahin, wo ich den Rest ausarbeiten kann ... möchte dir Kredit geben. –