Ich versuche ein Verzeichnis unter zu komprimieren
/home/cyrus/sql
Und ich wollte das Arbeitsverzeichnis beim Zippen des Ordners ändern:
/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql
Aber wenn ich die Zip-Datei überprüfe:
/ $ unzip -l sql.zip
Archive: sql.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-30 10:59 home/cyrus/sql/
1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql
--------- -------
1776642 2 files
Der Stammordner sollte gewesen sein sql
. Was habe ich falsch gemacht?
cd /home/cyrus && zip /sql.zip sql
wenn Sie möchten, dass die ZIP-Datei im Stammverzeichnis erstellt wird.Ich bin nicht sicher, ob ich das richtig verstehe, aber -b wird den Stammordner nicht ändern. Das temporäre ZIP-Archiv wird im Verzeichnis / home / cryus abgelegt und anschließend über sql.zip in das aktuelle Verzeichnis kopiert. Diese Option ist nur nützlich, wenn ein vorhandenes Archiv aktualisiert wird. Das Dateisystem, das dieses alte Archiv enthält, verfügt nicht über genügend Speicherplatz, um sowohl alte als auch neue Archive gleichzeitig zu speichern.
versuchen zu benutzen:
-j Speichert nur den Namen einer gespeicherten Datei (den Pfad nicht angeben) und speichert keine Verzeichnisnamen. Standardmäßig speichert zip den vollständigen Pfad (relativ zum aktuellen Pfad).
quelle
-j
könnte nicht richtig sein; Ich würde annehmen, dass das OP relative Pfade beibehalten und nicht alle Pfade entfernen möchte.Inspiriert von Stephanes Antwort:
Das Ergebnis:
quelle
Es ist möglicherweise einfacher, den Ordner, den Sie komprimieren möchten, mit dem aktuellen Verzeichnis zu verknüpfen. So können Sie bleiben, wo Sie sind.
Sie sind der Symlink, wenn Sie es wünschen.
quelle