Bash-Skript, das eine Verzeichnisstruktur erstellt

8

Ich habe die ganze Nacht gegoogelt, um einen Weg zu finden, ein Skript zu erstellen, das eine Verzeichnisstruktur erstellt. Das sieht ungefähr so ​​aus:

%Vor%

Sie verstehen es.

Die Datei, aus der das Skript liest, sieht folgendermaßen aus:

%Vor%

Ich möchte ein Skript erstellen, das jede Zeile in der Datei liest und für jede Zeile Folgendes ausführt: Wenn das Verzeichnis existiert, legt es sich selbst in das Verzeichnis und erstellt von dort die Struktur, falls Das Verzeichnis existiert nicht, erstellen Sie es.
Wenn alle Einträge in der Zeile vorangestellt wurden, gehen Sie zurück zum ursprünglichen Verzeichnis und lesen Sie die nächste Zeile.

Mein System ist Ubuntu 10.10.

Bisher habe ich das gemacht, aber es funktioniert nicht.

%Vor%     
user668905 21.03.2011, 06:10
quelle

6 Antworten

24

Sie können mkdir -p shared/projects/movies/action verwenden, um den gesamten Baum zu erstellen: Er erstellt shared , dann shared/projects , dann shared/projects/movies und shared/projects/movies/action .

Im Grunde brauchen Sie ein Skript, das mkdir -p $dir ausführt, wobei $dir das Blattverzeichnis Ihrer Verzeichnisstruktur ist.

    
littleadv 21.03.2011 06:15
quelle
7

Wenn struct.txt die Verzeichnisstruktur enthält, die Sie erwähnen, dann führen Sie einfach:

%Vor%

sed entfernt leere Zeilen und die restlichen Zeilen sehen wie Verzeichnispfade aus.
xargs nimmt jede Zeile und übergibt sie als Parameter an mkdir .
mkdir macht das Das Verzeichnis und das Flag -p erstellen ggf. übergeordnete Verzeichnisse.

    
Lawrence Woodman 21.03.2011 06:32
quelle
5

mkdir hat ein Flag -p , das bei Bedarf alle übergeordneten Verzeichnisse des von Ihnen erstellten Verzeichnisses erstellt. Sie können einfach nur jede Zeile lesen, sie in einen Pfad umwandeln (d. h. s/ /\//g ) und mkdir -p $path in jeder Zeile aufrufen

    
B_. 21.03.2011 06:15
quelle
3

1) Tun Sie so etwas

%Vor%

, um eine Liste der Ordner zu erstellen, die Sie erstellen müssen.

2) Übertragen Sie die Liste an Ihr Ziel

3) Erstellen Sie die Struktur an Ihrem neuen Standort neu:

%Vor%

Beachten Sie, dass Sie die Option "-p" in diesem Fall nicht benötigen, auch wenn es nicht schaden würde.

    
witkacy26 12.02.2013 15:43
quelle
1

Ich verwende dieses Skript in meinem .bash_profile, das ich für neue Projekte verwende:

%Vor%

Wenn Sie eine verschachtelte Ordnerstruktur erstellen möchten, können Sie Folgendes tun:

%Vor%     
Brett 04.12.2012 17:30
quelle
0

Angenommen, Sie möchten einen Baum von Ordnern / Verzeichnissen wie folgt erstellen:

%Vor%

Auch vorausgesetzt, Sie haben eine Variable, die die Verzeichnisnamen erwähnt.
DOMAIN_NAME=includes,docs

Sie können den folgenden Befehl eingeben:
$ eval "mkdir -p tmpdir/{trunk/sources/{${DOMAIN_NAME}},branches,tags}"

Hinweis: verwenden Sie die BASH-Version, die die Erweiterung geschweifter Klammern unterstützt.

    
AjayKumarBasuthkar 03.03.2014 12:37
quelle

Tags und Links