Zip-Datei mit absoluten Pfaden über die Kommandozeile

Zip-Datei mit absoluten Pfaden über die Kommandozeile

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 -dder 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.

verwandte Informationen