Wie komprimiere ich mehrere Dateien in ein .xz-Archiv?

Wie komprimiere ich mehrere Dateien in ein .xz-Archiv?

Ich möchte mehrere Bilder in ein .xz-Archiv komprimieren. Wie mache ich das?

Antwort1

Verwendung tarmit -JOption:

tar -cvJf images.tar.xz /directory/containing/images/*

tarwird verwendet, um mehrere Dateien zu einer (Archiv) zu kombinieren. Anschließend müssen wir das Archiv mit dem XZ-Komprimierungsalgorithmus komprimieren.

Ausman tar:

-c, --create
       create a new archive
-v, --verbose
       verbosely list files processed
-J, --xz

-f, --file ARCHIVE
       use archive file or device ARCHIVE

Beachten Sie auch, dass images.tar.xzim aktuellen Verzeichnis erstellt wird. Wenn Sie es woanders speichern möchten, verwenden Sie /full/path/to/images.tar.xz.

Antwort2

Obwohl alstar cJf archive files...detailliert von Zacharee1Undvon heemaylist normalerweise das, was Sie tun möchten, eine andere Möglichkeit besteht darin, geteerte Daten an diexzBefehl:

tar c files... | xz > archive.tar.xz

Seit Ubuntutarunterstützt die JOption. Diese alternative Methode ist insbesondere dann nützlich, wenn Sie Optionen an übergeben möchten xz.

In diesem Beispiel tar- und xzip-e ich einige TIFF-Dateien mit einem hohen Komprimierungsgrad ( -9to xz) und ausführlicher Ausgabe ( vto tar, -vto xz):

ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
  100 %       207.3 KiB / 290.0 KiB = 0.715

Dies könnte natürlich auch in zwei explizit getrennten Schritten erfolgen:

ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
  100 %       207.3 KiB / 290.0 KiB = 0.715

Diese beiden Möglichkeiten funktionieren nicht wirklich gleichwertig, die .tar.xzletztendlich erzeugten Dateien sollten jedoch gleich sein (und waren es auch, als ich es getestet habe).

  • Im erstenAusgabevon taristverrohrt( |) zumEingangvon xz. xzempfängt Daten tarfast sofort, und es wird nie eine unkomprimierte Tar-Datei zwischendurch erstellt. Das heißt, dass die erste Methode im Wesentlichen gleichbedeutend ist mitZutar cJf archive files..., mit Ausnahme der zusätzlichen Argumente, die an übergeben werden xz.
  • Im zweiten Schritt wird durch den ersten Befehl ein unkomprimiertes Tar-Archiv erstellt und dann durch xzden zweiten Befehl komprimiert. ( xzDie Originaldatei wird nach Abschluss automatisch gelöscht, sofern der Vorgang nicht mit -k/ aufgerufen wird --keep.)

Weitere Informationen finden Sie unterdieser Beitrag von Rafael van Hornund die tarManpages xz.

Antwort3

Verwenden Sie diesen Befehl: tar cJf <archive.tar.xz> <files>. Trennen Sie Dateipfade mit einem Leerzeichen.

verwandte Informationen