
Ich möchte mehrere Bilder in ein .xz-Archiv komprimieren. Wie mache ich das?
Antwort1
Verwendung tar
mit -J
Option:
tar -cvJf images.tar.xz /directory/containing/images/*
tar
wird 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.xz
im 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 diexz
Befehl:
tar c files... | xz > archive.tar.xz
Seit Ubuntutar
unterstützt die J
Option. 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 ( -9
to xz
) und ausführlicher Ausgabe ( v
to tar
, -v
to 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.xz
letztendlich erzeugten Dateien sollten jedoch gleich sein (und waren es auch, als ich es getestet habe).
- Im erstenAusgabevon
tar
istverrohrt(|
) zumEingangvonxz
.xz
empfängt Datentar
fast 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 werdenxz
. - Im zweiten Schritt wird durch den ersten Befehl ein unkomprimiertes Tar-Archiv erstellt und dann durch
xz
den zweiten Befehl komprimiert. (xz
Die 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 tar
Manpages xz
.
Antwort3
Verwenden Sie diesen Befehl: tar cJf <archive.tar.xz> <files>
. Trennen Sie Dateipfade mit einem Leerzeichen.