it-swarm.com.de

Befehl zum Zipen mehrerer Verzeichnisse in einzelne Zip-Dateien

Ich habe ein einziges Verzeichnis, das Dutzende von Verzeichnissen enthält.

Ich bin neu in der Befehlszeile und habe Probleme, einen Befehl zu finden, mit dem jedes Unterverzeichnis in eine eindeutige Unterverzeichnis.Zip-Datei komprimiert wird.

Am Ende wird mein primäres Verzeichnis mit allen meinen ursprünglichen Unterverzeichnissen sowie den entsprechenden .Zip - Dateien gefüllt, die den komprimierten Inhalt jedes Unterverzeichnisses enthalten.

Ist so etwas möglich? Wenn ja, zeigen Sie mir bitte, wie es gemacht wird.

44
Evster

Sie können diese Schleife in bash verwenden:

for i in */; do Zip -r "${i%/}.Zip" "$i"; done

i ist der Name der Schleifenvariablen. */ bedeutet jedes Unterverzeichnis des aktuellen Verzeichnisses und enthält einen abschließenden Schrägstrich in diesen Namen. Stellen Sie sicher, dass Sie cd an der richtigen Stelle sind, bevor Sie dies ausführen. "$i" benennt einfach dieses Verzeichnis, einschließlich des abschließenden Schrägstrichs. Die Anführungszeichen stellen sicher, dass Leerzeichen im Verzeichnisnamen keine Probleme verursachen. ${i%/} ist wie $i, aber mit entferntem Schrägstrich, damit Sie den Namen der Zip-Datei erstellen können.

Wenn Sie sehen möchten, wie dies funktioniert, fügen Sie vor dem echo ein Zip ein, und die Befehle werden gedruckt anstatt ausgeführt.

80
MvG