Ich habe ein Verzeichnis mit ZIP-Dateien (erstellt auf einem Windows-Computer). Ich kann sie manuell mit entpacken unzip filename
, aber wie kann ich alle ZIP-Dateien im aktuellen Ordner über die Shell entpacken?
Verwenden von Ubuntu Linux Server.
Dies funktioniert in Bash, gemäß diesem Link :
entpacke \ *. zip
Geben Sie einfach ein paar Anführungszeichen ein, um dem Platzhalter zu entkommen:
quelle
Das folgende Bash-Skript extrahiert alle Zip-Dateien im aktuellen Verzeichnis in neue Verzeichnisse mit dem Dateinamen der Zip-Datei, dh:
Die folgenden Dateien:
Wird extrahiert zu:
Shell-Skript:
quelle
"
entpacke * .zip oder wenn sie sich in Unterordnern befinden, dann so etwas wie
quelle
gzip'ed
Verwenden Sie für Dateien dasgunzip -rfk .
rekursive Entpacken in den entsprechenden OrdnernEntpacken Sie alle
.zip
Dateien und speichern Sie den Inhalt in einem neuen Ordner mit demselben Namen und im selben Ordner wie die.zip
Datei:Dies ist eine Erweiterung der Antwort von @ phatmanace und der Adressen von @ RishabhAgrahari :
quelle
gzip'ed
Verwenden Sie für Dateien dasgunzip -rfk .
rekursive Entpacken in den entsprechenden Ordnernfind: illegal option -- n
mit UnZip 6.00 - jemand anderes?find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
Sie haben die Verzeichnisliste vergessen.Dadurch werden alle Zip-Archive in neue Ordner entpackt, die mit den Dateinamen der Zip-Archive benannt sind.
a.zip
b.zip
c.zip
wird jeweils ina
b
c
Ordner entpackt .quelle
aunpack -e *.zip
mitatool
installiert. Hat den Vorteil, dass es intelligent mit Fehlern umgeht und immer in Unterverzeichnisse entpackt, es sei denn, die Zip-Datei enthält nur eine Datei. Somit besteht keine Gefahr, das aktuelle Verzeichnis mit Massen von Dateien zu verschmutzen, wie dies beiunzip
einer Zip- Datei ohne Verzeichnisstruktur der Fall ist.quelle
In jeder POSIX-Shell wird dies für jede Zip-Datei in ein anderes Verzeichnis entpackt:
quelle
for file in *.zip; do unzip "$file" -d "${file%.zip}"; done
Benutze das:
quelle
for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done
quelle
for file in *.zip; do ...
richtig zu machen?Wenn die Dateien sind
gzip'd
. Dann benutze einfach:aus dem Stammverzeichnis, um rekursiv Dateien in den jeweiligen Verzeichnissen zu extrahieren, indem die ursprünglichen beibehalten werden (oder entfernen
-k
, um sie zu löschen)quelle
Dies ist eine Variante der Antwort von Pedro Lobito , bei der ein Verzeichnis rekursiv durchlaufen wird, um Dateien mit bestimmten Erweiterungslehren zu löschen :
quelle
quelle
Um alle Dateien in einem Verzeichnis zu entpacken, geben Sie einfach dieses cmd in das Terminal ein:
quelle
Verwenden
um einen Ordner unter Linux zu entpacken
quelle