Ich muss eine Zip-Datei mit diesem Befehl erstellen:
zip /dir/to/file/newZip /data/to/zip/data.txt
Dies funktioniert, aber die erstellte Zip-Datei erstellt eine Verzeichnisstruktur, die das Verzeichnis der Rohdatei nachahmt. Es sind viele zusätzliche Ordner, die ich nicht brauche.
Ich fand keine Antwort auf einen flüchtigen Blick über die Manpage oder eine Google-Jagd.
Antworten:
Sie können verwenden
-j
.quelle
-j
es für Ihr Verzeichnis (zusammen mit-r
) nicht funktioniert,Die Verwendung
-j
funktioniert nicht mit der-r
Option.Die Problemumgehung dafür kann also folgende sein:
Oder Inline-Version
Sie können die Ausgabe an richten,
/dev/null
wenn diecd -
Ausgabe nicht auf dem Bildschirm angezeigt werden sollquelle
cd path/to/parent/dir/ && zip -r ../../../../name.zip ./* && cd -
cd path/to/parent/dir/
Sie die Anzahl der Doppelpunkte../
leicht berechnen .Verwenden Sie die
-j
Option:quelle
Etwas verwandt - ich suchte nach einer Lösung, um dasselbe für Verzeichnisse zu tun. Leider
-j
funktioniert die Option dafür nicht :(Hier ist eine gute Lösung, wie Sie dies erreichen können: /superuser/119649/avoid-unwanted-path-in-zip-file
quelle
Alternativ können Sie einen temporären symbolischen Link zu Ihrer Datei erstellen:
Dies funktioniert auch für ein Verzeichnis.
quelle
Behalten Sie das übergeordnete Verzeichnis bei, damit
unzip
nicht überall Dateien ausgegeben werdenWenn Sie beim Komprimieren von Verzeichnissen das übergeordnete Verzeichnis im Archiv belassen, können Sie vermeiden, dass Ihr aktuelles Verzeichnis beim späteren Entpacken der Archivdatei verschmutzt wird
Um zu vermeiden, dass alle Pfade beibehalten werden, und da Sie -j und -r nicht zusammen verwenden können (es wird eine Fehlermeldung angezeigt), können Sie stattdessen Folgendes tun:
Das
../$(basename $PWD)
ist die Magie, die das übergeordnete Verzeichnis beibehält.So , jetzt
unzip my.zip
einen Ordner geben alle Ihre Dateien enthält:Anstatt das aktuelle Verzeichnis mit den entpackten Dateien zu verunreinigen:
quelle
Verwenden Sie einfach die
-jrm
Option, um die Datei- und Verzeichnisstrukturen zu entfernenquelle