Ich möchte mehrere Bilder in ein .xz-Archiv komprimieren. Wie mache ich das?
quelle
Ich möchte mehrere Bilder in ein .xz-Archiv komprimieren. Wie mache ich das?
Obwohl, wie von Zacharee1 und Heemayl beschrieben, normalerweise das ist, was Sie tun möchten, besteht eine andere Möglichkeit darin, geteerte Daten an den Befehl weiterzuleiten :tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
Da Ubuntu tar
die J
Option unterstützt , ist diese alternative Methode besonders nützlich, wenn Sie Optionen an übergeben möchten xz
.
In diesem Beispiel tar und xzip ich einige TIFF-Dateien mit einem hohen Grad an Komprimierung ( -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 Methoden sind in ihrer Funktionsweise eigentlich nicht gleichwertig, obwohl die .tar.xz
Dateien, die sie am Ende produzieren, gleich sein sollten (und waren, als ich sie getestet habe).
tar
IS verrohrt ( |
) mit dem Eingang der xz
. xz
Empfängt Daten von tar
fast sofort und es wird nie eine unkomprimierte Zwischen-TAR-Datei erstellt. Dies bedeutet, dass der erste Weg im Wesentlichen äquivalent zu isttar cJf archive files...
, mit Ausnahme der zusätzlichen Argumente, an die übergeben wird xz
.xz
. ( xz
Löscht automatisch die Originaldatei, wenn sie fertig ist, es sei denn, sie wird mit -k
/ aufgerufen --keep
.)Weitere Informationen finden Sie in diesem Beitrag von Rafael van Horn und den tar
und xz
Manpages.
tar -J
besteht darin, die Umgebungsvariable anzugebenXZ_OPT
und den Aufruf so zu gestalten:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Verwendung
tar
mit-J
Option:tar
wird verwendet, um mehrere Dateien zu einer (Archiv) zu kombinieren. Anschließend müssen wir das Archiv mithilfe des XZ-Komprimierungsalgorithmus komprimieren.Von
man tar
:Beachten Sie auch, dass
images.tar.xz
dies im aktuellen Verzeichnis erstellt wird, wenn Sie es an einem anderen Ort speichern möchten/full/path/to/images.tar.xz
.quelle
xz
ist die langsamste unterxz
,gzip
,bzip2
aufgrund seiner höheren Verdichtungsverhältnis als die others..the Langsamkeit lohnt sich zu viel mit , wenn Sie mehr Kompression wollen ..Verwenden Sie diesen Befehl :
tar cJf <archive.tar.xz> <files>
. Trennen Sie Dateipfade durch ein Leerzeichen.quelle
-cfJ
-
vorne .. vonman tar
:A function letter need not be prefixed with ``-''
..sotar cJf
ist absolut OK.tar cJf
, die OP eine andere Möglichkeit geben würde, dies zu tun, da meine Antwort bereitstar --cvJf
zuerst behandelt wurde.