Je veux compresser plusieurs images dans une archive .xz. Comment je fais ça?
la source
Je veux compresser plusieurs images dans une archive .xz. Comment je fais ça?
Bien que comme détaillé par Zacharee1 et par heemayl soit généralement ce que vous voudrez faire, une autre façon est de diriger les données goudronnées vers la commande:tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
Étant donné qu'Ubuntu tar
prend en charge l' J
option, cette autre méthode est particulièrement utile lorsque vous souhaitez transmettre des options à xz
.
Dans cet exemple, je tar et xzip certains fichiers TIFF avec un niveau élevé de compression ( -9
vers xz
) et une sortie détaillée ( v
vers tar
, -v
vers 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
Bien entendu, cela pourrait également se faire en deux étapes distinctes:
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
Ces deux façons ne sont pas réellement équivalentes dans leur fonctionnement, bien que les .tar.xz
fichiers qu'ils produisent à la fin devraient être les mêmes (et l'étaient lorsque je les ai testés).
tar
est redirigée ( |
) vers l' entrée de xz
. xz
reçoit des données de tar
presque immédiatement, et aucun fichier tar non compressé intermédiaire n'est jamais créé. Cela signifie que la première méthode est essentiellement équivalente àtar cJf archive files...
, à l'exception des arguments supplémentaires passés à xz
.xz
dans la deuxième commande. ( xz
supprime automatiquement le fichier d'origine lorsqu'il est terminé, sauf s'il est invoqué avec -k
/ --keep
.)Pour en savoir plus, consultez cet article de Rafael van Horn et les pages de manuel tar
et xz
.
tar -J
est de spécifier la variable d'environnementXZ_OPT
, ce qui rend l'invocation quelque chose comme:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Utiliser
tar
avec-J
option:tar
est utilisé pour combiner plusieurs fichiers en un seul (Archive), puis nous devons compresser l'archive à l'aide de l'algorithme de compression XZ.De
man tar
:Notez également que
images.tar.xz
sera créé dans le répertoire courant, si vous souhaitez le sauvegarder ailleurs, utilisez/full/path/to/images.tar.xz
.la source
xz
soit le plus lent parmixz
,gzip
enbzip2
raison de son taux de compression plus élevé que les autres..la lenteur vaut la peine d'être traitée si vous voulez plus de compression ..Utilisez cette commande:
tar cJf <archive.tar.xz> <files>
. Séparez les chemins d'accès aux fichiers par un espace.la source
-cfJ
-
devant .. deman tar
:A function letter need not be prefixed with ``-''
..sotar cJf
est absolument OK.tar cJf
, ce qui donnerait à OP une autre façon de le faire car ma réponse était déjà couvertetar --cvJf
au début ..