gzip 2 Dateien in eine Datei

9

Ich möchte zwei oder mehr Dateien in eine Datei auf gzip, überprüfte ich dies und das , aber beide haben Dateien wie: n1.txt, n2.txt... aber meine Dateinamen sind völlig verschieden, wie: file.mp4, bar.txt, foo.jpegund ich möchte sie alle und setzt den Ausgang auf gzip in eine Datei. Das hat auch nicht geholfen:

gzip -c file.mp4 > test.gz
gzip -c bar.txt >> test.gz

Muss ich sie zuerst tarieren?

Und noch eine Frage: In TAR-Dateien können wir innere Dateien ohne Dekomprimierung anzeigen, indem wir:

tar -tvf filename.tar

Gibt es sowieso etwas mit gzip oder bzip2 zu tun?

Mohammad Kholghi
quelle

Antworten:

14

Im Gegensatz zu ZIP können RAR oder 7-Zip beispielsweise gzipnur eine Datei komprimieren. Wie Sie bereits bemerkt haben, gibt es das tarProgramm, das mehrere Dateien zu einer serialisieren kann, wodurch sie bereit sind gzip. Die traditionelle Unix-Philosophie bevorzugt die Verwendung mehrerer einfacherer und spezialisierterer Tools als eines monolithischen und komplizierten. In diesem Fall ergibt sich bei der Verwendung tarund gzipnacheinander, was zu einer .tar.gz(oder .tgzDatei).

GNU tarenthält jedoch die -zOption, die das Ergebnis der herkömmlichen tarVerwendung gzipin nur einem Befehl komprimiert .

.tar.gzDateien werden meistens mit den folgenden -czvfOptionen erstellt:

  • cein neues Archiv erstellen
  • g zip (Alternativen: jfür bzip2, Jfür xz)
  • verbose (Liste der verarbeiteten Dateien; optional)
  • Ausgabedatei f(das folgende Argument gibt die Ausgabedatei an)

In Ihrem Beispiel können Sie den folgenden Befehl verwenden:

tar -czvf test.tar.gz file.mp4 bar.txt

Gibt es eine Möglichkeit, innere Dateien ohne Dekomprimierung mit gzip oder bzip2 anzusehen?

Ja, Ihr Befehl funktioniert auch für eine .tar.gzDatei:

tar -tvf test.tar.gz

Weiterführende Literatur

Melebius
quelle
Was für eine großartige Antwort
nperson325681
1
Die Kombination von zwei Werkzeugen hat es auch ermöglicht, die Komprimierungsmethode durch andere zu ersetzen, die für einen bestimmten Bedarf effizienter sind. Moderne Versionen von Teer kennen viele Kompressoren und können sie bei Bedarf transparent aufrufen.
Thorbjørn Ravn Andersen
2
Wenig bekannte Tatsache: Es ist möglich, mehrere Dateien mit zu komprimieren gzip. Dies ist jedoch nicht sehr nützlich, da beim Dekomprimieren einer solchen Datei gunzipnur alle Originaldateien an eine einzige Datei angehängt werden. Wenn Sie eingeben echo Foo > a ; gzip a, wird eine Datei mit a.gzdem Namen und dem Zeitstempel der Originaldatei aufgerufen a. Wenn Sie dann eingeben, erhalten echo Bar > b ; gzip b ; cat a.gz b.gz >combined.gzSie eine combined.gzDatei mit allen für die Rekonstruktion erforderlichen Informationen aund bihren ursprünglichen Namen, Inhalten und Zeitstempeln.
Kasperd
4

gzip ist ein Kompressor, kein Archivierer, aber es funktioniert gut mit tar

tar -cvzf file.tar.gz path-to-files-or-directories-to-compress

Sehen man tar

Compression options
   -a, --auto-compress
          Use archive suffix to determine the compression program.

   -I, --use-compress-program=COMMAND
          Filter data through COMMAND.  It must accept the -d option,  for
          decompression.  The argument can contain command line options.

   -j, --bzip2
          Filter the archive through bzip2(1).

   -J, --xz
          Filter the archive through xz(1).

   --lzip Filter the archive through lzip(1).

   --lzma Filter the archive through lzma(1).

   --lzop Filter the archive through lzop(1).

   --no-auto-compress
          Do not use archive suffix to determine the compression program.

   -z, --gzip, --gunzip, --ungzip
          Filter the archive through gzip(1).

   -Z, --compress, --uncompress
          Filter the archive through compress(1).

Und ja, Sie können komprimierte Archive auf die gleiche Weise ansehen.

Sudodus
quelle