Gibt es eine Möglichkeit, eine Datei über die Befehlszeile in Linux zu komprimieren, um absolute Pfade einzuschließen?
Ich habe ein Python-Programm, das Zip- und Tar-Dateien auf absolute Pfade überprüft, und möchte eine ZIP-Datei erstellen, um zu prüfen, ob die Funktion funktioniert.
Dies gelang mir erfolgreich mit einem Tar. Ich habe auch viel gegoogelt, um eine Antwort darauf zu finden, und die Zip-Dokumentation und das Handbuch durchgesehen, aber keine klare Antwort gefunden.
Antwort1
$> zip file.zip $PWD/test.txt
adding: path/to/test.txt (deflated 5%)
$> unzip -l file.zip
Archive: file.zip
Length Date Time Name
--------- ---------- ----- ----
20 03-11-2019 21:32 path/to/test.txt
--------- -------
20 1 file
Auch hierfür gibt es einen Schalter:
$> zip -jj file.zip test.txt
adding: test.txt (deflated 5%)
$> unzip -l file.zip
Archive: file.zip
Length Date Time Name
--------- ---------- ----- ----
20 03-11-2019 21:32 path/to/test.txt
--------- -------
20 1 files
Es gibt Ihnen genau das gleiche Ergebnis, aber wenn Sie es von Anfang an verwenden, /
können Sie das nicht wirklich, aber Sie können das beim Dekomprimieren mit -d
der Option angeben.
Ja! Das ist eine Bearbeitung. Mir ist eingefallen, dass Sie vielleicht von gz, xz, bzip2 sprechen? Wenn ja, müssen Sie diese zuerst archivieren, diese haben kein Dateisystemkonzept wie Tar. Zip, Rar, 7z, alle machen so etwas.
Antwort2
Im ZIP-Dateiformat sind die Dateipfade immer relativ, siehe zum BeispielDas:
file name: (Variable) The name of the file, with optional relative path. The path stored should not contain a drive or device letter, or a leading slash. All slashes should be forward slashes '/' as opposed to backwards slashes '\' for compatibility with Amiga and Unix file systems etc.
Natürlich ist es möglich, eine ZIP-Datei so zu patchen, dass ein führender Schrägstrich erzwungen wird, aber alle regulären Apps sind normalerweise gegen solche offensichtlichen Hacks geschützt (*).
(*) Ein noch ärgerlicherer Hack war die Datei nahezu unendlicher Länge, die aus aufeinanderfolgenden Nullen bestand und in einer Handvoll Bytes kodiert war. Das Dekomprimieren dieser Datei führte häufig zum Absturz Ihres Computers. Alle ZIP-Dienstprogramme erkennen dies jetzt.