Wie Dateien und Verzeichnisse zu einer ZIP-Datei, ohne Root-Verzeichnis hinzufügen?
-
06-07-2019 - |
Frage
Das Zip-Utility-Programm, wenn sie als zip -r out.zip base/*
auf dieser Verzeichnisstruktur aufgerufen
.
./base
./base/b
./base/b/c
./base/d
erzeugt das folgende Ergebnis
adding: base/b/ (stored 0%)
adding: base/b/c (stored 0%)
adding: base/d (stored 0%)
Ich mag eine Datei erhalten, Daten wie aus der folgenden Ausgabe mit
adding: b/ (stored 0%)
adding: b/c (stored 0%)
adding: d (stored 0%)
Ich erwartete die Option -j, mir zu helfen, aber es funktioniert nicht: es flacht vollständig die Verzeichnisstruktur. Im Moment fand die einzige Lösung, die ich zu cd in die Basis und rufen zip von hier, aber ich habe mich gefragt, ob es einen Schalter ich nicht als solche in der Dokumentation zu erkennen.
Lösung
Ich verstehe, dass Sie nicht cd
wollen, aber ...
Wenn alle Stricke reißen und Sie hoffen, Ihren Anruf zu halten, um eine Zeile zip nach unten, können Sie die Anrufe Kette und einen relativen Pfad zur Ausgabe zip im Stamm verwenden:
Für Windows:
cd base & zip -r ..\out.zip * & cd ..
Für Linux / Unix:
cd base ; zip -r ../out.zip * ; cd ..