GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen Sie einen eigenen Ordner für alle Zip-Dateien in einem Verzeichnis und extrahieren Sie Zip-Dateien

unzip file.zip -d xxx entpackt Dateien in das Verzeichnis xxx, und xxx wird erstellt, wenn es nicht dort ist. Einzelheiten finden Sie in der Manpage.

Die folgende awk-Zeile sollte die Aufgabe erledigen:

ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'|sh

Sehen Sie sich den Test an unten,

Hinweis dass ich |sh entfernt habe am Ende, da meine Reißverschlüsse gefälschte Archive sind; Ich möchte hier nur die generierte Befehlszeile zeigen.

kent$  ls -l
total 0
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 001.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 002.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 003.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 004.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 005.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 006.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 007.zip

kent$  ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'
unzip 001.zip -d 001
unzip 002.zip -d 002
unzip 003.zip -d 003
unzip 004.zip -d 004
unzip 005.zip -d 005
unzip 006.zip -d 006
unzip 007.zip -d 007

"hier extrahieren" ist lediglich ein Feature von was auch immer unzip Wrapper, den Sie verwenden. unzip extrahiert nur, was tatsächlich im Archiv ist. Es gibt wahrscheinlich keinen einfacheren Weg als ein Shell-Skript. Aber sed , awk usw. werden dafür nicht benötigt, wenn Sie eine POSIX-kompatible Shell haben:

for f in *.zip; do unzip -d "${f%*.zip}" "$f"; done

(Sie dürfen die * NICHT entkommen oder Pfadnamenerweiterung findet nicht statt.) Beachten Sie, dass, wenn das ZIP-Archiv ein Verzeichnis enthält, wie z. B. bei Eclipse-Archiven (die immer eclipse/ ), würden Sie am Ende ./eclipse*/eclipse/eclipse.ini erhalten auf jeden Fall. Fügen Sie echo hinzu vor unzip für einen Probelauf.


p7zip , die Kommandozeilenversion von 7zip erledigt die Aufgabe

7z x '*.zip' -o'*'

Auf Debian und Ubuntu müssen Sie p7zip-full installieren .


Linux
  1. Tar-Archiv eines Verzeichnisses erstellen, außer für versteckte Dateien?

  2. Wie erstelle ich mehrere Zips aus einem Verzeichnis mit einer Million XML-Dateien?

  3. Einen Ordner durchlaufen und Dateien auflisten?

  4. Erfahren Sie, wie Sie Dateien unter Linux komprimieren und entpacken, und werden Sie ein Zip-Meister

  5. ZIP-Datei erstellen und Verzeichnisstruktur ignorieren

So komprimieren und entpacken Sie Dateien unter Ubuntu

So extrahieren Sie Dateien in einen bestimmten Ordner unter Linux

So zippen Sie Dateien und Ordner in Linux [Anfängertipp]

Komprimieren und Archivieren von Dateien und Verzeichnissen

So komprimieren Sie Dateien und Ordner unter Linux

Linux /-Ordner und /root-Ordner