Wie extrahiert man einen bestimmten Ordner aus einem ZIP-Archiv in ein bestimmtes Verzeichnis?
Ich habe versucht mit
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
Dadurch wird jedoch nur der Ordner auf dem Pfad erstellt, in den entpackt werden soll, und nichts anderes wird ausgeführt.
"\\"
möchte , würde man ihn verwenden (sonst müsste man sich immer merken, welche Zeichen Sonderzeichen sind). Es ist also ein Zitatunterschied, wenn der Autor das "Zitieren des Glob-Zeichens" meinte (unnötig). In jedem Fall ist ein solcher Backslash ein Tippfehler.Versuchen:
quelle
caution: filename not matched: foldername/\*
wenn ich laufe ,unzip $repozip "$2-master/\*" -d /srv/www/magento/
wo$2
ist der Ordnername in der Zip ich alle Dateien und Ordner aus ziehen wollen"path/*"
.mv
danach Dateien, wo ich sie brauchte.-j
dafür.-j
Entfernt alle Pfadinformationen und alle Dateien werden in den Zielordner verschoben. Gibt es eine Möglichkeit, nur den gemeinsamen Teil des Pfades zu entfernen? Ähnlich wie beim Reißverschluss-r
.Die vorhandenen zwei Antworten sind beide korrekt, aber es ist etwas schwierig, das Zielverzeichnis anzugeben, das besser geklärt werden sollte.
Nehmen wir an, es
/target/root/
ist das Zielverzeichnis bei der ursprünglichen Dekomprimierungsaktion, zB:Anschließend müssen wir dasselbe
/target/root/
wie das Zielverzeichnis verwenden, obwohl wir nur ein bestimmtes Unterverzeichnis extrahieren möchten, wie das Entpacken funktioniert:Immerhin ist die Regel eigentlich einfach, verwenden Sie dasselbe Ziel-Stammverzeichnis für die
-d
Option .Übrigens, die
-qq
Option ist, dass das Entpacken sehr leise ist. Sie können es jederzeit entfernen.quelle