Ich versuche, ein .tar.xz
komprimiertes Archiv in einem Befehl zu erstellen . Was ist die spezifische Syntax dafür?
Ich habe es versucht tar cf - file | xz file.tar.xz
, aber das funktioniert nicht.
compression
archive
tar
xz
George K.
quelle
quelle
v
dem Befehl switch (tar -cJvf
) hinzufügen , um ausführlich zu sein, werden die Dateien angezeigt, die dem Archiv hinzugefügt werden.f
letzte auch ohne Bindestrich zu setzen.tar
unter macOS scheint zu unterstützen,-J
aber die Funktion wird nicht in der Manpage angegeben. Musste es hier nachschlagen. Obwohl sie XZ im Abschnitt über--options
...Switch
-J
funktioniert nur auf neueren Systemen. Der universelle Befehl lautet:So erstellen Sie ein .tar.xz-Archiv
Erläuterung
tar cf - directory
liest das Verzeichnis / und beginnt, es in das TAR-Format zu bringen. Die Ausgabe dieser Operation wird auf der Standardausgabe generiert.|
leitet die Standardausgabe an die Eingabe eines anderen Programms weiter ...... was zufällig ist
xz -z -
. XZ ist so konfiguriert, dass-z
das Archiv von der Standardeingabe (-
) komprimiert ( ) wird.Sie leiten die Ausgabe von
xz
in dietar.xz
Datei um.quelle
-f
bedeutet nicht "aus Datei", wenn an übergebenxz
. Stattdessen ist es die Abkürzung für--force
(siehe xz (1) für Details) und wird am besten nur verwendet, wenn dies erforderlich ist.tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0
oder-0 -T0
um Optionen, die normalerweise in einer vergleichbaren oder schnelleren Zeit immer noch eine kleinere Datei als gzip liefern, während die Standardeinstellung-6
erheblich langsamer ist als gzip.Wenn Sie den Pipe-Modus mögen, ist dies die sauberste Lösung:
Es ist nicht erforderlich, die
f
Option zu setzen, um mit Dateien umzugehen, und dann-
anzugeben, dass die Datei die Standardeingabe ist. Es ist auch nicht erforderlich, die-z
Option für anzugebenxz
, da dies die Standardeinstellung ist.Es funktioniert mit
gzip
undbzip2
auch:oder
Das Dekomprimieren ist auch ganz einfach:
Wenn Sie nur ein
tar
Archiv haben, können Sie Folgendes verwendencat
:Wenn Sie nur die Dateien auflisten müssen, verwenden Sie
tar t
.quelle
Verwenden von xz-Komprimierungsoptionen
Wenn Sie Komprimierungsoptionen für
xz
oder untertar
MacOS verwenden möchten, möchten Sie wahrscheinlich dietar -cJf
Syntax vermeiden .Nach
man xz
der Art und Weise , dies zu tun ist:tar cf - baz | xz -4e > baz.tar.xz
Weil mir das Format von Wojciech Adam Koszek gefallen hat , aber keine Informationen:
c
Erstellt ein neues Archiv für die angegebenen Dateien.f
liest aus einem Verzeichnis (am besten diese Sekunde setzen, weil-cf
! =-fc
)-
Ausgänge zum Standardausgang|
Pipes werden an den nächsten Befehl ausgegebenxz -4e
Anrufexz
mit der-4e
Komprimierungsoption. (gleich-4
--extreme
)> baz.tar.xz
Leitet die geteerte und komprimierte Datei anbaz.tar.xz
Wo
-4e
ist, verwenden Sie Ihre eigenen Komprimierungsoptionen. Ich verwende oft-k
auf--keep
die Originaldatei und-9
für wirklich starke Kompression.-z
manuellxz
auf zip einstellen , standardmäßig jedoch zippen, wenn nicht anders angegeben.Zum Dekomprimieren und Entpacken
Echo Rafael van Horn , zu dekomprimieren und entpacken (siehe Anmerkung unten):
Hinweis: Verwenden Sie im Gegensatz zu Rafaels Antwort
xz -dc
anstelle voncatxz
. Die Dokumente empfehlen dies, falls Sie dies für die Skripterstellung verwenden. Am besten haben Sie die Angewohnheit,-d
oder--decompress
statt zu verwendenunxz
. Wenn Sie jedoch müssen, ist die Verwendung dieser Befehle über die Befehlszeile in Ordnung.quelle
tar -cJf
Syntax unter MacOS nicht verwendet wird? Nur neugierig, weil ich das gerade tat und es zu funktionieren schien.Versuche dies:
tar -cf file.tar file-to-compress ; xz -z file.tar
Hinweis:
|
da hierdurch Befehle gleichzeitig ausgeführt werden. Verwendung;
oder&
führt Befehle einen nach dem anderen.quelle
J
Option, aber das funktioniert. Ich denke du brauchst RHEL6.tar -c file-to-compress | xz -z > file.tar.xz
.&
wird kein Befehl nach dem anderen gestartet. Stattdessen wird der erste als Hintergrundprozess gestartet.