J'essaye de créer une .tar.xz
archive compressée en une seule commande. Quelle est la syntaxe spécifique pour cela?
J'ai essayé tar cf - file | xz file.tar.xz
, mais cela ne fonctionne pas.
compression
archive
tar
xz
George K.
la source
la source
v
à la commande commutateurs (tar -cJvf
) pour être détaillé montre les fichiers ajoutés à l'archive.f
dernier, même sans le tiret.tar
sur macOS semble prendre en charge-J
mais la fonctionnalité n'est pas donnée dans la page de manuel. J'ai dû le chercher ici. Bien qu'ils mentionnent XZ dans la section sur--options
...Switch
-J
ne fonctionne que sur les systèmes plus récents. La commande universelle est:Pour créer une archive .tar.xz
Explication
tar cf - directory
lit le répertoire / et commence à le mettre au format TAR. La sortie de cette opération est générée sur la sortie standard.|
conduit la sortie standard vers l'entrée d'un autre programme ...... ce qui se trouve être
xz -z -
. XZ est configuré pour compresser (-z
) l'archive à partir de l'entrée standard (-
).Vous redirigez la sortie
xz
vers letar.xz
fichier.la source
-f
ne signifie pas «à partir du fichier» lorsqu'il est transmis àxz
. Au lieu de cela, il est l'abréviation de--force
(voir xz (1) pour plus de détails), et il est préférable de ne pas l'utiliser sauf si nécessaire.tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0
ou des-0 -T0
options, ce qui vous donnera généralement toujours un fichier plus petit que gzip dans un temps comparable ou plus rapide, alors que la valeur par défaut-6
est considérablement plus lente que gzip.Si vous aimez le mode pipe, c'est la solution la plus propre:
Il n'est pas nécessaire de mettre l'
f
option pour traiter les fichiers, puis de l'utiliser-
pour spécifier que le fichier est l'entrée standard. Il n'est pas non plus nécessaire de spécifier l'-z
option pourxz
, car elle est par défaut.Cela fonctionne avec
gzip
etbzip2
aussi:ou
La décompression est également assez simple:
Si vous n'avez que des
tar
archives, vous pouvez utilisercat
:Si vous avez besoin de lister uniquement les fichiers, utilisez
tar t
.la source
Utilisation des options de compression xz
Si vous souhaitez utiliser des options de compression pour
xz
, ou si vous utiliseztar
sur MacOS, vous voudrez probablement éviter latar -cJf
syntaxe.Selon
man xz
, la façon de procéder est:tar cf - baz | xz -4e > baz.tar.xz
Parce que j'ai aimé le format de Wojciech Adam Koszek , mais pas les informations:
c
crée une nouvelle archive pour les fichiers spécifiés.f
lit dans un répertoire (mieux vaut mettre cette seconde car-cf
! =-fc
)-
sorties vers la sortie standard|
conduit la sortie vers la commande suivantexz -4e
appelsxz
avec l'-4e
option de compression. (égal à-4
--extreme
)> baz.tar.xz
dirige le fichier taré et compressé versbaz.tar.xz
où
-4e
est, utilisez vos propres options de compression. Je l' utilise souvent-k
pour--keep
le fichier d' origine et-9
pour la compression vraiment lourd.-z
à définir manuellementxz
sur zip, bien qu'il soit par défaut zipping si ce n'est pas indiqué autrement.Pour décompresser et décompresser
Pour faire écho à Rafael van Horn , pour décompresser et décompresser (voir note ci-dessous):
Remarque: contrairement à la réponse de Rafael , utilisez à la
xz -dc
place decatxz
. La documentation le recommande au cas où vous l'utiliseriez pour la création de scripts. Mieux vaut avoir l'habitude d'utiliser-d
ou--decompress
plutôtunxz
que d'utiliser . Cependant, si vous le devez, utiliser ces commandes à partir de la ligne de commande est très bien.la source
tar -cJf
syntaxe sur MacOS? Juste curieux, parce que je faisais ça tout à l'heure et que ça semblait marcher.Essaye ça:
tar -cf file.tar file-to-compress ; xz -z file.tar
Remarque:
|
car cela exécute les commandes simultanément. Utiliser;
ou&
exécuter des commandes l'une après l'autre.la source
J
option, mais cela fonctionne. Je pense que vous avez besoin de RHEL6.tar -c file-to-compress | xz -z > file.tar.xz
.&
ne lancera pas une commande l'une après l'autre. Au lieu de cela, il lancera le premier en tant que processus d'arrière-plan.