Ich habe eine ZIP-Datei, in der sich ein oberstes Verzeichnis befindet, in dem alle Dateien gespeichert sind:
Release/
Release/file
Release/subdirectory/file
Release/subdirectory/file2
Release/subdirectory/file3
Ich möchte alles unter extrahieren Release
und dabei die Verzeichnisstruktur beibehalten, aber wenn ich dies ausführe:
unzip archive.zip Release/* -d /tmp
Es wird der oberste Release
Ordner erstellt:
/tmp/Release/
/tmp/Release/file
/tmp/Release/subdirectory/file
/tmp/Release/subdirectory/file2
/tmp/Release/subdirectory/file3
So kann ich alles extrahieren, Release
ohne einen Release
Ordner zu erstellen :
/tmp/
/tmp/file
/tmp/subdirectory/file
/tmp/subdirectory/file2
/tmp/subdirectory/file3
command-line
unzip
Moses
quelle
quelle
unzip archive.zip && mv Release/* .
Release
OrdnerAntworten:
Versuchen Sie es in Ihrem Fall im Zielordner:
Dann müssen Sie den von Ihnen erstellten Link entfernen:
quelle
Das
j
Flag sollte die Ordnererstellung verhindernunzip -j archive.zip -d .
Von der Manpage :
quelle
-j
Option speichert alle Dateien im aktuellen Verzeichnis, ohne Rücksicht auf die Verzeichnisstruktur im Archiv.Python-Skript zum Reduzieren des extrahierten Baums
Das unten geschriebene Skript extrahiert die Zip-Datei und verschiebt die im obersten Verzeichnis enthaltenen Dateien aus dem aktuellen Arbeitsverzeichnis. Dieses schnelle Skript ist auf diese spezielle Frage zugeschnitten, bei der es ein einziges oberstes Verzeichnis gibt, das alle Dateien enthält, obwohl es mit wenigen Änderungen für allgemeinere Fälle geeignet gemacht werden kann.
Testlauf
Hier ist ein Beispiel, wie das Skript funktionieren soll. Alles, was in das aktuelle Arbeitsverzeichnis extrahiert wurde, aber die Quelldatei kann sich insgesamt in einem anderen Verzeichnis befinden. Der Test wird im Zip-Archiv meines persönlichen Github-Repositorys durchgeführt.
Testen Sie, ob sich die Quelldatei an einem anderen Speicherort befindet
quelle