Man page - xz(1)
Packages contains this manual
Available languages:
en fr pt_BR it ko ja uk ro sr deManual
XZ
NOMSYNOPSIS
ALIAS DES COMMANDES
DESCRIPTION
Utilisation de la mémoire
Concaténation et remplissage avec des fichiers .xz
OPTIONS
Suffixes entiers et valeurs spéciales.
Mode dâopĂ©ration
Modificateurs dâopĂ©ration
Format de fichier basique et options de compression
Chaßnes de filtres de compresseur personnalisées
Autres options
MODE ROBOT
Mode liste
Filters help
Information de limite de mémoire
Version
STATUT DE SORTIE
ENVIRONNEMENT
Compatibilité des utilitaires LZMA
Niveaux de préréglage de la compression
Fichiers .lzma en flux ou non
Fichiers .lzma non pris en charge
Déchets excédentaires
NOTES
La sortie compressée peut varier
Décompresseurs .xz embarqués
EXEMPLES
Bases
Compression en parallĂšle de plusieurs fichiers
Mode robot
Chaßnes de filtres de compresseur personnalisées
VOIR AUSSI
NOM
xz, unxz, xzcat, lzma, unlzma, lzcat - Compresser ou décompresser des fichiers .xz et .lzma
SYNOPSIS
xz [ option... ] [ fichier... ]
ALIAS DES COMMANDES
unxz
est
Ă©quivalent Ă
xz --decompress
.
xzcat
est Ă©quivalent Ă
xz --decompress
--stdout
lzma
est Ă©quivalent Ă
xz --format=lzma
unlzma
est Ă©quivalent Ă
xz
--format=lzma --decompress
lzcat
est Ă©quivalent Ă
xz --format=lzma
--decompress -- stdout
Lors de lâĂ©criture de scripts qui nĂ©cessitent de dĂ©compresser des fichiers, il est recommandĂ© de toujours utiliser la commande xz avec les arguments appropriĂ©s ( xz -d ou xz -dc ) au lieu des commandes unxz et xzcat .
DESCRIPTION
xz is a general-purpose data compression tool with command line syntax similar to gzip (1) and bzip2 (1). The native file format is the .xz format, but the legacy .lzma format used by LZMA Utils and raw compressed streams with no container format headers are also supported. In addition, decompression of the .lz format used by lzip is supported.
xz compresse ou dĂ©compresse chaque fichier en fonction du mode dâopĂ©ration choisi. Si aucun fichier nâest donnĂ© ou fichier est - , xz lit depuis lâentrĂ©e standard et Ă©crit les donnĂ©es traitĂ©es sur la sortie standard. xz refusera (affichera une erreur et ignorera le fichier ) dâĂ©crire les donnĂ©es compressĂ©es sur la sortie standard si câest un terminal. De mĂȘme, xz refusera de lire des donnĂ©es compressĂ©es depuis lâentrĂ©e standard si câest un terminal.
A moins que --sdout ne soit indiqué, les fichiers autres que - sont écrits dans un nouveau fichier dont le nom est dérivé du nom de fichier source :
|
âą |
Lors de la compression, le suffixe du format de fichier cible ( .xz ou .lzma ) est ajouté au nom de fichier source pour obtenir le nom de fichier cible. |
||
|
âą |
When decompressing, the .xz , .lzma , or .lz suffix is removed from the filename to get the target filename. xz also recognizes the suffixes .txz and .tlz , and replaces them with the .tar suffix. |
Si le fichier cible existe déjà , une erreur est affichée et le fichier est ignoré.
Sauf sâil Ă©crit dans la sortie standard, xz affichera un avertissement et ignorera le fichier dans les cas suivants :
|
âą |
fichier nâest pas un fichier normal. Les liens symboliques ne sont pas suivis et donc ne sont pas considĂ©rĂ©s comme des fichiers normaux. |
||
|
âą |
fichier a plusieurs liens physiques. |
||
|
âą |
fichier a un setuid, setgid ou sticky bit positionné. |
||
|
âą |
Le mode dâopĂ©ration est dĂ©fini pour compresser et le fichier a dĂ©jĂ un suffixe du format de fichier cible ( .xz ou .txz lors dâune compression en format .xz , et .lzma ou .tlz lors dâune compression en format .lzma ). |
||
|
âą |
The operation mode is set to decompress and the file doesnât have a suffix of any of the supported file formats ( .xz , .txz , .lzma , .tlz , or .lz ). |
AprĂšs la compression ou la dĂ©compression rĂ©ussie du fichier , xz copie les permissions du propriĂ©taire, du groupe, la date dâaccĂšs, et les modifications dâheure depuis le fichier source du fichier cible. Si la copie du groupe Ă©choue, les permissions sont modifiĂ©es pour que le fichier cible ne soit pas accessible aux utilisateurs qui nâont pas les droits dâaccĂšs au fichier source. xz ne prend actuellement pas en charge la copie dâautres mĂ©tadonnĂ©es telles que les listes de contrĂŽle dâaccĂšs ou les attributs Ă©tendus.
Once the target file has been successfully closed, the source file is removed unless --keep was specified. The source file is never removed if the output is written to standard output or if an error occurs.
Envoyer SIGINFO ou SIGURSR1 au processus xz , lui fait afficher lâinformation de progression sur lâerreur standard. Cela a un intĂ©rĂȘt limitĂ© car lorsque lâerreur standard est un terminal, utiliser --verbose affichera automatiquement un indicateur de progression du processus.
Utilisation de la mémoire
Lâutilisation de la mĂ©moire par xz varie de quelques centaines de kilo-octets Ă plusieurs gigaoctects en fonction des paramĂštres de compression. Les rĂ©glages utilisĂ©s lors de la compression dâun fichier dĂ©terminent les besoins en mĂ©moire pour la dĂ©compression. Habituellement la dĂ©compression nĂ©cessite 5 Ă 20 de la quantitĂ© de mĂ©moire utilisĂ©e pour la compression du fichier. Par exemple, dĂ©compresser un fichier créé avec xz-9 recquiert habituellement 65 Mio de mĂ©moire. Bien quâil soit possible dâavoir des fichiers .xz nĂ©cessitant plusieurs gigaoctets de mĂ©moire pour ĂȘtre dĂ©compressĂ©s.
Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, xz has a built-in memory usage limiter, which is disabled by default. While some operating systems provide ways to limit the memory usage of processes, relying on it wasnât deemed to be flexible enough (for example, using ulimit (1) to limit virtual memory tends to cripple mmap (2)).
The memory usage limiter can be enabled with the command line option --memlimit= limit . Often it is more convenient to enable the limiter by default by setting the environment variable XZ_DEFAULTS , for example, XZ_DEFAULTS=--memlimit=150MiB . It is possible to set the limits separately for compression and decompression by using --memlimit-compress= limit and --memlimit-decompress= limit . Using these two options outside XZ_DEFAULTS is rarely useful because a single run of xz cannot do both compression and decompression and --memlimit= limit (or -M limit ) is shorter to type on the command line.
If the specified memory usage limit is exceeded when decompressing, xz will display an error and decompressing the file will fail. If the limit is exceeded when compressing, xz will try to scale the settings down so that the limit is no longer exceeded (except when using --format=raw or --no-adjust ). This way the operation wonât fail unless the limit is very small. The scaling of the settings is done in steps that donât match the compression level presets, for example, if the limit is only slightly less than the amount required for xz -9 , the settings will be scaled down only a little, not all the way down to xz -8 .
Concaténation et remplissage avec des fichiers .xz
Il est possible de concatĂ©ner les fichiers .xz tels quel. xz dĂ©compressera de tels fichiers comme sâils Ă©taient un unique fichier .xz .
It is possible to insert padding between the concatenated parts or after the last part. The padding must consist of null bytes and the size of the padding must be a multiple of four bytes. This can be useful, for example, if the .xz file is stored on a medium that measures file sizes in 512-byte blocks.
La concaténation et le remplissage ne sont pas autorisés avec les fichiers .lzma ou les flux bruts.
OPTIONS
Suffixes entiers et valeurs spéciales.
Dans la plupart des endroits oĂč un argument entier est attendu, un suffixe optionel permet dâindiquer facilement les grands entiers. Il ne doit pas y avoir dâespace entre lâentier et le suffixe.
|
KiB |
Multiplier lâentier par 1024 (2Ë10). Ki , k , kB , K et KB sont acceptĂ©s comme synonymes de KiB . |
||
|
MiB |
Multiplier lâentier par 1 048 576 (2Ë20). Mi , m , M et MB sont acceptĂ©s comme synonymes de MiB . |
||
|
GiB |
Multiplier lâentier par 1 073 741 824 (2Ë30). Gi , g , G et GB sont acceptĂ©s comme synonymes de GiB . |
La valeur spĂ©ciale max peut ĂȘtre utilisĂ©e pour indiquer la valeur maximale de lâentier prise en charge par lâoption.
Mode dâopĂ©ration
Si plusieurs
options de mode dâopĂ©ration sont
données, la derniÚre prend effet.
-z
,
--compress
Compresser. Câest le mode dâopĂ©ration par dĂ©faut lorsque aucune option de mode opĂ©ratoire nâest spĂ©cifiĂ©e ou quâaucun autre mode dâopĂ©ration nâest sous-entendu par le nom de la commande (par exemple unxz sous-entend --decompress ).
|
After successful compression, the source file is removed unless writing to standard output or --keep was specified. |
-d , --decompress , --uncompress
Decompress. After successful decompression, the source file is removed unless writing to standard output or --keep was specified.
-t , --test
Tester lâintĂ©gritĂ© des fichiers compressĂ©s. Cette option est Ă©quivalente Ă --decompress --stdout sauf que les donnĂ©es dĂ©compressĂ©es sont rejetĂ©es au lieu dâĂȘtre Ă©crites sur la sortie standard. Aucun fichier nâest créé ou supprimĂ©.
-l , --list
Afficher lâinformation sur les fichiers compressĂ©s. Aucune sortie non-compressĂ©e nâest produite et aucun fichier nâest créé ou supprimĂ©. En mode liste, le programme ne peut pas lire les donnĂ©es compressĂ©es depuis lâentrĂ©e standard ou depuis dâautres sources non adressables.
|
The default listing shows basic information about files , one file per line. To get more detailed information, use also the --verbose option. For even more information, use --verbose twice, but note that this may be slow, because getting all the extra information requires many seeks. The width of verbose output exceeds 80 characters, so piping the output to, for example, less -S may be convenient if the terminal isnât wide enough. |
|
|
La sortie exacte peut varier suivant les versions de xz et les différents paramÚtres régionaux. Pour une sortie lisible par la machine, utiliser --robot --list . |
Modificateurs dâopĂ©ration
-k , --keep
Ne pas effacer les fichiers dâentrĂ©e.
|
Since xz 5.2.6, this option also makes xz compress or decompress even if the input is a symbolic link to a regular file, has more than one hard link, or has the setuid, setgid, or sticky bit set. The setuid, setgid, and sticky bits are not copied to the target file. In earlier versions this was only done with --force . |
-f , --force
Cette option a plusieurs effets :
|
âą |
Si le fichier cible existe dĂ©jĂ , lâeffacer avant de compresser ou dĂ©compresser. |
||
|
âą |
Compresser ou dĂ©compresser mĂȘme si lâentrĂ©e est un lien symbolique vers un fichier normal, a plus quâun lien physique, ou a le bit setuid, setgid ou sticky dĂ©fini. Les bits setuid, setgid et sticky bits ne sont pas copiĂ©s dans le fichier cible. |
||
|
âą |
Lorsque xz est utilisĂ© avec --decompress --stdout et quâil ne peut pas reconnaitre le type du fichier source, copier le fichier source tel quel dans la sortie standard. CelĂ permet Ă xzcat --force dâĂȘtre utilisĂ© comme cat (1) pour les fichiers qui nâont pas Ă©tĂ© compressĂ© avec xz . Remarquez que dans le futur, xz devrait prendre en charge de nouveaux formats de fichiers compressĂ©s, ce qui permettra Ă xz de dĂ©compresser plus de types de fichiers au lieu de les copier tels quels dans la sortie standard. --format= format peut ĂȘtre utilisĂ© pour contraindre xz Ă dĂ©compresser seulement un format de fichier. |
-c , --stdout , --to-stdout
Ăcrire les donnĂ©es compressĂ©es ou dĂ©compressĂ©es sur la sortie standard plutĂŽt que dans un fichier. Cela necessite --keep .
--single-stream
DĂ©compresser seulement le premier flux .xz et ignorer silencieusement les possibles donnĂ©es dâentrĂ©e rĂ©siduelles qui suivent le flux. Normalement ces dĂ©chets excĂ©dentaires provoquent lâaffichage dâune erreur par xz .
|
xz ne dĂ©compresse jamais plus dâun flux Ă partir de fichiers .lzma ou de flux bruts, mais cette option fait aussi que xz ignorera les donnĂ©es rĂ©siduelles aprĂšs le fichier .lzma ou le flux brut. |
|
|
Cette option nâa aucun effet si le mode dâopĂ©ration nâest pas --decompress ou --test . |
|
|
Since xz 5.7.1alpha, --single-stream implies --keep . |
--no-sparse
DĂ©sactiver la crĂ©ation de fichiers peu denses. Par dĂ©faut, lors de la dĂ©compression en un fichier normal, xz essaie dâen faire un fichier creux si les donnĂ©es dĂ©compressĂ©es contiennent de longues sĂ©quences de zĂ©ros binaires. Cela fonctionne aussi lors de lâĂ©criture sur la sortie standard aussi longtemps que la sortie standard est connectĂ©e Ă un fichier normal et que certaines conditions supplĂ©mentaires sont satisfaites pour le faire de maniĂšre sĂ©curisĂ©e. CrĂ©er des fichiers creux peut Ă©pargner de lâespace disque et accĂ©lĂ©rer la dĂ©compression en rĂ©duisant la quantitĂ© dâentrĂ©es/sorties sur le disque.
-S .suf , --suffix= .suf
Lors de la compression, utiliser .suf comme suffixe du fichier cible au lieu de .xz ou .lzma . Si xz nâĂ©crit pas sur la sortie standard et si le fichier source a dĂ©ja le suffixe .suf , un avertissement est affichĂ© et le fichier est ignorĂ©.
|
When decompressing, recognize files with the suffix .suf in addition to files with the .xz , .txz , .lzma , .tlz , or .lz suffix. If the source file has the suffix .suf , the suffix is removed to get the target filename. |
|
|
Lors de la compression ou dĂ©compression de flux bruts ( --fomat=raw ), le suffixe doit toujours ĂȘtre spĂ©cifiĂ© Ă moins dâĂ©crire sur la sortie standard, car il nây a pas de suffixe par dĂ©faut pour les flux bruts. |
--files [ = fichier ]
Lire les noms de fichier Ă traiter depuis fichier ; si fichier est omis , les noms de fichier sont lus sur lâentrĂ©e standard. Les noms de fichier doivent se terminer avec le caractĂšre de nouvelle ligne. Un tiret ( - ) est considĂ©rĂ© comme un nom de fichier normal ; ce qui ne signifie pas entrĂ©e standard. Si les noms de fichier sont aussi donnĂ©s comme arguments de ligne de commande, ils sont traitĂ©s avant les noms de fichier lus depuis fichier .
--files0 [ = fichier ]
Cela est identique Ă --files [ = fichier ] sauf que chaque nom de fichier doit se terminer par le caractĂšre null.
Format de fichier basique et options de compression
-F format , --format= format
Indiquer le format de fichier à compresser ou décompresser :
|
auto |
Câest celui par dĂ©faut. Lors de la compression, auto est Ă©quivalent Ă xz . Lors de la dĂ©compression, le format du fichier en entrĂ©e est dĂ©tectĂ© automatiquement. Notez que les flux bruts (créés avec --format=raw ) ne peuvent pas ĂȘtre dĂ©tectĂ©s automatiquement. |
||
|
xz |
Compresser dans le format de fichier .xz ou nâaccepter que les fichiers .xz Ă dĂ©compresser. |
lzma , alone
Compresser au format de fichier .lzma historique, ou nâaccepter que les fichiers .lzma lors de la dĂ©compression. Le nom alternatif alone est fourni pour la rĂ©trocompatibilitĂ© avec les utilitaires LZMA.
|
lzip |
Accept only .lz files when decompressing. Compression is not supported. |
||
|
The .lz format version 0 and the unextended version 1 are supported. Version 0 files were produced by lzip 1.3 and older. Such files arenât common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in lzip 1.18. |
|||
|
lzip 1.4 and later create files in the format version 1. The sync flush marker extension to the format version 1 was added in lzip 1.6. This extension is rarely used and isnât supported by xz (diagnosed as corrupt input). |
|||
|
raw |
Compresser ou dĂ©compresser un flux brut (sans en-tĂȘtes). Cela est rĂ©servĂ© seulement aux utilisateurs aguerris. Pour dĂ©coder des flux bruts, vous devez utiliser --format=raw et spĂ©cifier explicitement la chaĂźne de filtre, qui normalement aurait du ĂȘtre stockĂ©e dans les en-tĂȘtes du conteneur. |
-C vérif. , --check= vérif.
SpĂ©cifier le type dâintĂ©gritĂ© Ă vĂ©rifier. La vĂ©rification est calculĂ©e Ă partir des donnĂ©es non-compressĂ©es et stockĂ©es dans le fichier .xz . Cette option nâa effet que si la compression a Ă©tĂ© faite dans le format .xz ; le format .lzma ne gĂšre pas les vĂ©rifications dâintĂ©gritĂ©. Le contrĂŽle dâintĂ©gritĂ© (sâil y en a) est vĂ©rifiĂ© lorsque le fichier .xz est dĂ©compressĂ©.
|
Types de vérification pris en charge : |
none
|
Ne pas calculer de vĂ©rification dâintĂ©gritĂ© du tout. Câest gĂ©nĂ©ralement une mauvaise idĂ©e. Cela peut ĂȘtre utile lorsque lâintĂ©gritĂ© des donnĂ©es est vĂ©rifiĂ©e de toute façon par dâautres maniĂšres. |
|||
|
crc32 |
Calculer CRC32 en utilisant le polynĂŽme de IEEE-802.3 (Ethernet). |
||
|
crc64 |
Calculer CRC64 en utilisant le polynĂŽme de ECMA-182. Câest la maniĂšre utilisĂ©e par dĂ©faut, car câest lĂ©gĂšrement mieux que CRC32 pour dĂ©tecter les fichiers endommagĂ©s et la diffĂ©rence de vitesse est nĂ©gligeable. |
||
|
sha256 |
Calculer SHA-256. Câest quelque peu plus lent que CRC32 et CRC64. |
LâintĂ©gritĂ© des en-tĂȘtes .xz est toujours vĂ©rifiĂ©e avec CRC32. Il nâest pas possible de le changer ou de le dĂ©sactiver.
--ignore-check
Ne pas contrĂŽler la vĂ©rification dâintĂ©gritĂ© des donnĂ©es lors de la dĂ©compression. Les valeurs CRC32 dans les en-tĂȘtes .xz seront normalement toujours vĂ©rifiĂ©es.
|
Nâutilisez pas cette option Ă moins de savoir ce que vous faites. Les raisons possibles pour utiliser cette option : |
âą
|
Essayer de rĂ©cupĂ©rer des donnĂ©es dâun fichier .xz corrompu. |
|||
|
âą |
AccĂ©lĂ©rer la dĂ©compression. Cela importe surtout avec SHA-256 ou avec les fichiers qui ont Ă©tĂ© compressĂ©s extrĂȘmement bien. Il est recommandĂ© de ne pas utiliser cette option dans ce but Ă moins que lâintĂ©gritĂ© du fichier ne soit vĂ©rifiĂ©e extĂ©rieurement dâune autre maniĂšre. |
-0 ... -9
Choisir un niveau de compression prĂ©dĂ©fini. La valeur par dĂ©faut est 6 . Si plusieurs niveaux de prĂ©rĂ©glage sont spĂ©cifiĂ©s, câest le dernier qui sera pris en compte. Si une chaĂźne de filtres personnalisĂ©e a dĂ©jĂ Ă©tĂ© choisie, dĂ©finir un niveau de compression prĂ©rĂ©glĂ© efface la chaĂźne de filtres personnalisĂ©e.
|
Les diffĂ©rences entre les prĂ©rĂ©glages sont plus significatives quâavec gzip (1) et bzip2 (1). les rĂ©glages de compression sĂ©lectionnĂ©s dĂ©terminent les exigences en mĂ©moire pour la dĂ©compression, ainsi, utiliser un niveau de prĂ©rĂ©glage trop Ă©levĂ© peut rendre difficile Ă dĂ©compresser un fichier sur un vieux systĂšme avec peu de RAM. Clairement, ce nâest pas une bonne idĂ©e dâutiliser -9 aveuglĂ©ment pour tout comme ça lâest souvent avec gzip (1) et bzip2 (1). |
-0 ... -3
Ce sont des prĂ©rĂ©glages relativement rapides. 0 est parfois plus rapide que gzip -9 tout en compressant bien mieux. Les rĂ©glages plus Ă©levĂ©s ont souvent une rapiditĂ© comparable Ă celle de bzip2 (1) avec un taux de compression comparable ou meilleur, mĂȘme si les rĂ©sultats dĂ©pendent beaucoup du genre de donnĂ©es compressĂ©es.
-4 ... -6
Good to very good compression while keeping decompressor memory usage reasonable even for old systems. -6 is the default, which is usually a good choice for distributing files that need to be decompressible even on systems with only 16Â MiB RAM. ( -5e or -6e may be worth considering too. See --extreme .)
-7 ... -9
Câest comme -6 mais avec des besoins en mĂ©moire plus Ă©levĂ©s pour la compression et la dĂ©compression. Ce nâest utile que lorsque les fichiers sont plus gros que 8 Mio, 16 Mio et 32 Mio respectivement.
|
Sur le mĂȘme matĂ©riel, la vitesse de dĂ©compression est sensiblement un nombre constant dâoctets de donnĂ©es compressĂ©es par seconde. En dâautres termes, meilleure est la compression, plus rapide sera en gĂ©nĂ©ral la dĂ©compression. Cela signifie aussi que la quantitĂ© de sortie non compressĂ©e produite par seconde peut varier beaucoup. |
|
|
Le tableau suivant résume les caractéristiques des préréglages : |
|
Descriptions des colonnes : |
âą
|
DictSize est la taille du dictionnaire de LZMA2. Utiliser un dictionnaire plus gros que la taille du fichier non compressĂ© est un gaspillage de mĂ©moire. Câest pourquoi il est bon dâĂ©viter dâutiliser les prĂ©rĂ©glages de -7 Ă -9 lorsquâil nây en a pas vraiment besoin. A -6 et plus bas, la quantitĂ© de mĂ©moire gaspillĂ©e est gĂ©nĂ©ralement assez basse pour ne pas ĂȘtre un problĂšme. |
|||
|
âą |
CompCPU est une reprĂ©sentation des prĂ©rĂ©glages de LZMA2 qui affectent la vitesse de compression. La taille du dictionnaire aussi affecte la vitesse, alors comme CompCPU est le mĂȘme pour les niveaux de -6 Ă -9 , les plus haut niveaux tendent Ă ĂȘtre un peu moins rapides. Pour ĂȘtre encore moins rapide et du coup obtenir peut ĂȘtre une meilleure compression, consultez --extreme . |
||
|
âą |
CompMem contains the compressor memory requirements in the single-threaded mode. It may vary slightly between xz versions. |
||
|
âą |
DecMem contient les besoins en mĂ©moire du dĂ©compresseur. Ce sont les rĂ©glages de la compression qui dĂ©terminent les besoins en mĂ©moire de la dĂ©compression. Lâexacte utilisation de la mĂ©moire est lĂ©gĂšrement supĂ©rieure Ă la taille du dictionnaire LZMA2, mais les valeurs dans la table ont Ă©tĂ© arrondies au prochain Mio supĂ©rieur. |
Memory requirements of the multi-threaded mode are significantly higher than that of the single-threaded mode. With the default value of --block-size , each thread needs 3*3*DictSize plus CompMem or DecMem. For example, four threads with preset -6 needs 660â670Â MiB of memory.
-e , --extreme
Utilisez un variant plus lent que les prĂ©rĂ©glages ( -0 Ă -9 ) pour espĂ©rer avoir un taux de compression lĂ©gĂšrement meilleur, mais en cas de malchance cela peut ĂȘtre pire. Lâutilisation mĂ©moire du dĂ©compresseur nâest pas affectĂ©e, mais lâutilisation mĂ©moire du compresseur augmente un peu aux niveaux de prĂ©rĂ©glages de -0 Ă -3 .
|
Depuis quâil y a deux prĂ©rĂ©glages avec des tailles de dictionnaire de 4 Mio et 8 o, les prĂ©rĂ©glages -3e et -5e utilisent des rĂ©glages lĂ©gĂšrement plus rapides que -4e et -6e , respectivement. De cette maniĂšre, il nây a pas deux prĂ©rĂ©glages identiques. |
|
Par exemple, il y a un total de quatre prĂ©rĂ©glages qui utilisent un dictionnaire de 8 Mio et qui sont dans lâordre du plus rapide au plus lent : -5 , -6 , -5e et -6e . |
|||
|
--fast |
|||
|
--best |
Il y a nĂ©anmoins des alias trompeurs pour -0 et -9 , respectivement. Ils ne sont fournis que pour des besoins de rĂ©tro-compatibilitĂ© avec les utilitaires LZMA. Evitez dâutiliser ces options. |
--block-size= taille
Lors de la compression dans le format .xz , les donnĂ©es de lâentrĂ©e sont rĂ©parties en blocs de taille octets. Les blocs sont compressĂ©s indĂ©pendamment les un des autres, ce qui aide avec le mode multithread (multi-threading) et rend possible la dĂ©compression Ă accĂšs alĂ©atoire limitĂ©. Cette option est typiquement utilisĂ©e pour outrepasser la taille de bloc en mode multithread, mais cette option peut aussi ĂȘtre utilisĂ©e en mode single-thread.
|
In multi-threaded mode about three times size bytes will be allocated in each thread for buffering input and output. The default size is three times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a good value is 2â4 times the size of the LZMA2 dictionary or at least 1 MiB. Using size less than the LZMA2 dictionary size is waste of RAM because then the LZMA2 dictionary buffer will never get fully used. In multi-threaded mode, the sizes of the blocks are stored in the block headers. This size information is required for multi-threaded decompression. |
|
|
In single-threaded mode no block splitting is done by default. Setting this option doesnât affect memory usage. No size information is stored in block headers, thus files created in single-threaded mode wonât be identical to files created in multi-threaded mode. The lack of size information also means that xz wonât be able decompress the files in multi-threaded mode. |
--block-list= items
When compressing to the .xz format, start a new block with an optional custom filter chain after the given intervals of uncompressed data.
|
The items are a comma-separated list. Each item consists of an optional filter chain number between 0 and 9 followed by a colon ( : ) and a required size of uncompressed data. Omitting an item (two or more consecutive commas) is a shorthand to use the size and filters of the previous item. |
|
|
If the input file is bigger than the sum of the sizes in items , the last item is repeated until the end of the file. A special value of 0 may be used as the last size to indicate that the rest of the file should be encoded as a single block. |
|
|
An alternative filter chain for each block can be specified in combination with the --filters1= filters ... --filters9= filters options. These options define filter chains with an identifier between 1â9. Filter chain 0 can be used to refer to the default filter chain, which is the same as not specifying a filter chain. The filter chain identifier can be used before the uncompressed size, followed by a colon ( : ). For example, if one specifies --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB then blocks will be created using: |
âą
|
The filter chain specified by --filters1 and 2 MiB input |
|||
|
âą |
The filter chain specified by --filters3 and 2 MiB input |
||
|
âą |
The filter chain specified by --filters2 and 4 MiB input |
||
|
âą |
The filter chain specified by --filters2 and 4 MiB input |
||
|
âą |
The default filter chain and 2 MiB input |
||
|
âą |
The default filter chain and 4 MiB input for every block until end of input. |
If one specifies a size that exceeds the encoderâs block size (either the default value in threaded mode or the value specified with --block-size= size ), the encoder will create additional blocks while keeping the boundaries specified in items . For example, if one specifies --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input file is 80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, and 1 MiB.
|
En mode multi-threadĂ© les tailles de blocs sont stockĂ©es dans les en-tĂȘtes du bloc. Cela ne se fait pas en mode mono-threadĂ©, la sortie encodĂ©e ne sera donc pas identique Ă celle faite en mode multi-threadĂ©. |
--flush-timeout= temps_dâattente
Lors de la compression, si plus que temps_dâattente millisecondes (un entier positif) se sont Ă©coulĂ©es depuis le prĂ©cĂ©dent vidage et que lire plus de donnĂ©es bloquerait, toutes les donnĂ©es dâentrĂ©e en attente sont vidĂ©es de lâencodeur et mises Ă disposition dans le flux de sortie. Cela peut ĂȘtre utile si xz est utilisĂ© pour compresser les donnĂ©es qui sont diffusĂ©es sur un rĂ©seau. Des petites valeurs de temps_dâattente rendent les donnĂ©es disponibles Ă lâextrĂ©mitĂ© rĂ©ceptrice avec un lĂ©ger retard, mais les grandes valeurs de temps_dâattente donnent un meilleur taux de compression.
|
Cette option est dĂ©sactivĂ©e par dĂ©faut. Si cette option est indiquĂ©e plus dâune fois, la derniĂšre prend effet. La valeur spĂ©ciale de temps_dâattente de 0 peut ĂȘtre utilisĂ©e pour explicitement dĂ©sactiver cette option. |
|
|
Cette option nâest pas disponible sur les systĂšmes qui ne sont pas POSIX. |
|
|
Cette option est encore expérimentale. Actuellement, xz ne convient pas pour décompresser le flux en temps réel en raison de la façon dont xz effectue la mise en mémoire tampon. |
--no-sync
Do not synchronize the target file and its directory to the storage device before removing the source file. This can improve performance if compressing or decompressing many small files. However, if the system crashes soon after the deletion, it is possible that the target file was not written to the storage device but the delete operation was. In that case neither the original source file nor the target file is available.
|
This option has an effect only when xz is going to remove the source file. In other cases synchronization is never done. |
|
|
The synchronization and --no-sync were added in xz 5.7.1alpha. |
--memlimit-compress= limite
Indiquer une limite dâutilisation de la mĂ©moire pour la compression. Si cette option est indiquĂ©e plusieurs fois, câest la derniĂšre qui est prise en compte.
|
If the compression settings exceed the limit , xz will attempt to adjust the settings downwards so that the limit is no longer exceeded and display a notice that automatic adjustment was done. The adjustments are done in this order: reducing the number of threads, switching to single-threaded mode if even one thread in multi-threaded mode exceeds the limit , and finally reducing the LZMA2 dictionary size. |
|
|
When compressing with --format=raw or if --no-adjust has been specified, only the number of threads may be reduced since it can be done without affecting the compressed output. |
|
|
If the limit cannot be met even with the adjustments described above, an error is displayed and xz will exit with exit status 1. |
|
|
La limite peut ĂȘtre indiquĂ©e de plusieurs façons : |
âą
|
La limite peut ĂȘtre une valeur absolue en octets. Utiliser un suffixe dâentier comme MiB peut ĂȘtre utile. Exemple : --memlimit-compress=80MiB |
|||
|
âą |
La limite peut ĂȘtre indiquĂ©e sous forme dâun pourcentage de la mĂ©moire physique totale (RAM). Cela peut ĂȘtre particuliĂšrement utile quand la variable dâenvironnement XZ_DEFAULTS est indiquĂ©e dans un script dâinitialisation de lâinterprĂ©teur partagĂ© entre diffĂ©rents ordinateurs. De cette façon la limite est automatiquement plus grande sur les systĂšmes avec plus de mĂ©moire. Exemple : --memlimit=70% |
||
|
âą |
The limit can be reset back to its default value by setting it to 0 . This is currently equivalent to setting the limit to max (no memory usage limit). |
For 32-bit xz there is a special case: if the limit would be over 4020Â MiB , the limit is set to 4020Â MiB . On MIPS32 2000Â MiB is used instead. (The values 0 and max arenât affected by this. A similar feature doesnât exist for decompression.) This can be helpful when a 32-bit executable has access to 4Â GiB address space (2 GiB on MIPS32) while hopefully doing no harm in other situations.
|
Voir aussi la section utilisation de la mémoire . |
--memlimit-decompress= limite
RĂ©gler une limite dâutilisation de la mĂ©moire pour la dĂ©compression. Cela a un effet sur le mode --list . Si lâopĂ©ration nâest pas possible sans dĂ©passer la limite , xz affichera une erreur et la dĂ©compression Ă©chouera. Voir --memlimit-compress= limite pour les maniĂšres possibles dâindiquer la limite .
--memlimit-mt-decompress= limit
Set a memory usage limit for multi-threaded decompression. This can only affect the number of threads; this will never make xz refuse to decompress a file. If limit is too low to allow any multi-threading, the limit is ignored and xz will continue in single-threaded mode. Note that if also --memlimit-decompress is used, it will always apply to both single-threaded and multi-threaded modes, and so the effective limit for multi-threading will never be higher than the limit set with --memlimit-decompress .
|
In contrast to the other memory usage limit options, --memlimit-mt-decompress= limit has a system-specific default limit . xz --info-memory can be used to see the current value. |
|
|
This option and its default value exist because without any limit the threaded decompressor could end up allocating an insane amount of memory with some input files. If the default limit is too low on your system, feel free to increase the limit but never set it to a value larger than the amount of usable RAM as with appropriate input files xz will attempt to use that amount of memory even with a low number of threads. Running out of memory or swapping will not improve decompression performance. |
|
|
See --memlimit-compress= limit for possible ways to specify the limit . Setting limit to 0 resets the limit to the default system-specific value. |
-M limite , --memlimit= limite , --memory= limite
This is equivalent to specifying --memlimit-compress= limit --memlimit-decompress= limit --memlimit-mt-decompress= limit .
--no-adjust
Display an error and exit if the memory usage limit cannot be met without adjusting settings that affect the compressed output. That is, this prevents xz from switching the encoder from multi-threaded mode to single-threaded mode and from reducing the LZMA2 dictionary size. Even when this option is used the number of threads may be reduced to meet the memory usage limit as that wonât affect the compressed output.
|
Automatic adjusting is always disabled when creating raw streams ( --format=raw ). |
-T threads , --threads= threads
Specify the number of worker threads to use. Setting threads to a special value 0 makes xz use up to as many threads as the processor(s) on the system support. The actual number of threads can be fewer than threads if the input file is not big enough for threading with the given settings or if using more threads would exceed the memory usage limit.
|
The single-threaded and multi-threaded compressors produce different output. Single-threaded compressor will give the smallest file size but only the output from the multi-threaded compressor can be decompressed using multiple threads. Setting threads to 1 will use the single-threaded mode. Setting threads to any other value, including 0 , will use the multi-threaded compressor even if the system supports only one hardware thread. ( xz 5.2.x used single-threaded mode in this situation.) |
|
|
To use multi-threaded mode with only one thread, set threads to +1 . The + prefix has no effect with values other than 1 . A memory usage limit can still make xz switch to single-threaded mode unless --no-adjust is used. Support for the + prefix was added in xz 5.4.0. |
|
|
If an automatic number of threads has been requested and no memory usage limit has been specified, then a system-specific default soft limit will be used to possibly limit the number of threads. It is a soft limit in sense that it is ignored if the number of threads becomes one, thus a soft limit will never stop xz from compressing or decompressing. This default soft limit will not make xz switch from multi-threaded mode to single-threaded mode. The active limits can be seen with xz --info-memory . |
|
|
Actuellement, la seule mĂ©thode de gestion avec des threads consiste Ă sĂ©parer lâentrĂ©e en blocs et de les compresser indĂ©pendamment les uns des autres. La taille par dĂ©faut des blocs dĂ©pend du niveau de compression et peut-ĂȘtre remplacĂ©e avec lâoption --block-size= taille . |
|
|
Threaded decompression only works on files that contain multiple blocks with size information in block headers. All large enough files compressed in multi-threaded mode meet this condition, but files compressed in single-threaded mode donât even if --block-size= size has been used. |
|
|
The default value for threads is 0 . In xz 5.4.x and older the default is 1 . |
Chaßnes de filtres de compresseur personnalisées
A custom filter chain allows specifying the compression settings in detail instead of relying on the settings associated to the presets. When a custom filter chain is specified, preset options ( -0 ... -9 and --extreme ) earlier on the command line are forgotten. If a preset option is specified after one or more custom filter chain options, the new preset takes effect and the custom filter chain options specified earlier are forgotten.
Une chaĂźne de filtre est comparable Ă une redirection (pipe) sur la ligne de commande. Lors de la compression, les entrĂ©es non compressĂ©es vont au premier filtre, dont la sortie va au prochain filtre (sâil y en a). La sortie du dernier filtre est Ă©crite sur le fichier compressĂ©. Le nombre maximal de filtres dans la chaĂźne est quatre, mais habituellement, un chaĂźne de filtre nâa quâun ou deux filtres.
Beaucoup de filtres ont des limitations sur lâendroit oĂč ils peuvent se placer dans la chaĂźne de filtre : quelques filtres ne peuvent fonctionner quâen tant que dernier filtre dans la chaĂźne, quelques uns en tant que non dernier filtre, et dâautres Ă nâimporte quelle position dans la chaĂźne. Suivant le filtre, cette limitation est soit inhĂ©rente au profil du filtre, soit existe pour des raisons de sĂ©curitĂ©.
A custom filter chain can be specified in two different ways. The options --filters= filters and --filters1= filters ... --filters9= filters allow specifying an entire filter chain in one option using the liblzma filter string syntax. Alternatively, a filter chain can be specified by using one or more individual filter options in the order they are wanted in the filter chain. That is, the order of the individual filter options is significant! When decoding raw streams ( --format=raw ), the filter chain must be specified in the same order as it was specified when compressing. Any individual filter or preset options specified before the full chain option ( --filters= filters ) will be forgotten. Individual filters specified after the full chain option will reset the filter chain.
Both the full and individual filter options take filter-specific options as a comma-separated list. Extra commas in options are ignored. Every option has a default value, so specify those you want to change.
Pour voir
lâentiĂšretĂ© de la chaĂźne de
filtres et ses
options
, utilisez
xz -vv
(ce
qui est comme utiliser
--verbose
deux fois). Cela
fonctionne aussi pour voir les options de chaĂźne de
filtres utilisées par les préréglages.
--filters=
filters
Specify the full filter chain or a preset in a single option. Each filter can be separated by spaces or two dashes ( -- ). filters may need to be quoted on the shell command line so it is parsed as a single option. To denote options , use : or = . A preset can be prefixed with a - and followed with zero or more flags. The only supported flag is e to apply the same options as --extreme .
--filters1 = filters ... --filters9 = filters
Specify up to nine additional filter chains that can be used with --block-list .
|
For example, when compressing an archive with executable files followed by text files, the executable part could use a filter chain with a BCJ filter and the text part only the LZMA2 filter. |
--filters-help
Display a help message describing how to specify presets and custom filter chains in the --filters and --filters1= filters ... --filters9= filters options, and exit successfully.
--lzma1
[
=
options
]
--lzma2
[
=
options
]
Ajouter le filtre LZMA1 ou LZMA2 Ă la chaĂźne de filtres. Ces filtres ne peuvent ĂȘtre utilisĂ©s que comme dernier filtre dans la chaĂźne.
|
LZMA1 est un filtre historique, qui nâest pris en charge presque uniquement Ă cause de lâancien format de fichier .lzma , qui ne prend en charge que LZMA1. LZMA2 est une version mise Ă jour de LZMA1 pour rĂ©gler certains problĂšmes pratiques de LZMA1. Le format xz utilise LZMA2 et ne prend pas du tout en charge LZMA1. Les taux et vitesses de compression de LZMA1 et LZMA2 sont pratiquement identiques. |
|
|
LZMA1 et LZMA2 partagent le mĂȘme ensemble dâ options : |
preset= préréglage
Reset all LZMA1 or LZMA2 options to preset . Preset consist of an integer, which may be followed by single-letter preset modifiers. The integer can be from 0 to 9 , matching the command line options -0 ... -9 . The only supported modifier is currently e , which matches --extreme . If no preset is specified, the default values of LZMA1 or LZMA2 options are taken from the preset 6 .
dict= taille
La taille du dictionnaire (historique du tampon) indique combien dâoctets des donnĂ©es rĂ©cement dĂ©compressĂ©es sont gardĂ©s en mĂ©moire. Lâalgorithme essaie de trouver les sĂ©quences dâoctets rĂ©pĂ©tĂ©es (identiques) dans les donnĂ©es dĂ©compressĂ©es et les remplace par les donnĂ©es actuellement dans le dictionnaire. Plus gros est le dictionnaire, plus grande est la chance de trouver une correspondance. Ainsi, lâaugmentation de la taille du dictionnaire augmente habituellement le taux de compression, mais un dictionnaire plus gros que le fichier non compressĂ© est un gachis de mĂ©moire.
|
GĂ©nĂ©ralement la taille du dictionnaire est entre 64 Kio et 64 Mio. Le minimum Ă©tant 4 Kio. La taille maximale pour la compression est habituellement 1,5 Gio (1536 Mio). Le dĂ©compresseur prend en charge les dictionnaires jusquâĂ un octet de moins que 4 Gio, ce qui est le maximum pour les formats de flux LZMA1 et LZMA2. |
|||
|
La taille du dictionnaire et le chercheur de correspondance (match finder) ( mf ) dĂ©terminent ensemble lâutilisation de la mĂ©moire de lâencodeur LZMA1 ou LZMA2. La mĂȘme (ou une plus grosse) taille de dictionnaire est requise pour dĂ©compresser que ce qui a Ă©tĂ© utilisĂ© pour la compression, ainsi lâutilisation de la mĂ©moire du dĂ©codeur est dĂ©terminĂ©e par la taille du dictionnaire utilisĂ©e lors de la compression. Les en-tĂȘtes de .xz stockent la taille de dictionnaire sous la forme 2Ë n ou 2Ë n + 2Ë( n -1), de sorte que ces tailles sont quelque peu prĂ©fĂ©rĂ©es pour la compression. Les autres tailles seront arrondies Ă la hausse lorsque stockĂ©es dans les en-tĂȘtes de .xz . |
|||
|
lc= lc |
SpĂ©cifiez le nombre dâoctets de contexte littĂ©raux. Le minimum est 0 et le maximum est 4 . La valeur par dĂ©faut est 3 . En plus, la somme de lc et lp ne doit pas excĂ©der 4 . |
||
|
Tous les octets qui ne peuvent pas ĂȘtre codĂ©s comme des correspondances sont codĂ©s comme des littĂ©raux. Câest Ă dire que les littĂ©raux sont simplement des octets 8 bits encodĂ©s un Ă la fois. |
|||
|
The literal coding makes an assumption that the highest lc bits of the previous uncompressed byte correlate with the next byte. For example, in typical English text, an upper-case letter is often followed by a lower-case letter, and a lower-case letter is usually followed by another lower-case letter. In the US-ASCII character set, the highest three bits are 010 for upper-case letters and 011 for lower-case letters. When lc is at least 3, the literal coding can take advantage of this property in the uncompressed data. |
|||
|
The default value (3) is usually good. If you want maximum compression, test lc=4 . Sometimes it helps a little, and sometimes it makes compression worse. If it makes it worse, test lc=2 too. |
|||
|
lp= lp |
Indiquer le nombre de bits de position littĂ©rale. Le minimum est 0 et le maximum 4 ; par dĂ©faut câest 0 . |
||
|
Lp affecte le type dâalignement dans les donnĂ©es dĂ©compressĂ©es qui est prĂ©sumĂ© lors de lâencodage des littĂ©raux. Voir pb ci dessous pour plus dâinformation sur lâalignement. |
|||
|
pb= pb |
Indiquer le nombre de bits de position. Le minimum est 0 et le maximum 4 ; par défaut 2 . |
||
|
Pb affecte quel genre dâalignement est prĂ©sumĂ© en gĂ©nĂ©ral dans les donnĂ©es non compressĂ©es. Par dĂ©faut câest un alignement de quatre octets (2Ë pb =2Ë2=4), ce qui est gĂ©nĂ©ralement un bon choix lorsquâil nây a pas de meilleure estimation. |
|||
|
When the alignment is known, setting pb accordingly may reduce the file size a little. For example, with text files having one-byte alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can improve compression slightly. For UTF-16 text, pb=1 is a good choice. If the alignment is an odd number like 3 bytes, pb=0 might be the best choice. |
|||
|
MĂȘme si lâalignement prĂ©sumĂ© peut ĂȘtre ajustĂ© avec pb et lp , LZMA1 et LZMA2 favorisent toujours lĂ©gĂšrement lâalignement sur 16 octets. Il peut ĂȘtre utile dâen tenir compte lors de la conception de formats de fichiers susceptibles dâĂȘtre souvent compressĂ©s avec LZMA1 ou LZMA2. |
|||
|
mf= mf |
Match finder has a major effect on encoder speed, memory usage, and compression ratio. Usually Hash Chain match finders are faster than Binary Tree match finders. The default depends on the preset : 0 uses hc3 , 1â3 use hc4 , and the rest use bt4 . |
||
|
Les chercheurs de correspondance suivants sont pris en charge. Les formules dâutilisation de la mĂ©moire ci-dessous sont des approximations grossiĂšres qui sont les plus proches de la rĂ©alitĂ© lorsque dict est une puissance de deux. |
hc3
|
ChaĂźne de hachage avec hachage de 2 et 3Â octets |
Valeur minimale pour
nice
:
3
Utilisation de la mémoire :
dict
* 7.5 (if
dict
<= 16 Mio);
dict
* 5.5 + 64 MiB (si
dict
> 16 Mio)
|
hc4 |
ChaĂźne de hachage avec hachage de 2, 3 et 4Â octets |
Valeur minimale pour
nice
:
4
Utilisation de la mémoire :
dict
* 7.5 (si
dict
<= 32 Mio);
dict
* 6.5 (si
dict
> 32 Mio)
|
bt2 |
Arbre binaire avec hachage de 2Â octets |
Valeur minimale pour
nice
:
2
Utilisation de la mémoire :
dict
*
9.5
|
bt3 |
Arbre binaire avec hachage de 2 et 3Â octets |
Valeur minimale pour
nice
:
3
Utilisation de la mémoire :
dict
* 11.5 (si
dict
<= 16 Mio);
dict
* 9.5 + 64 MiB (si
dict
> 16 Mio)
|
bt4 |
Arbre binaire avec hachage 2, 3 et 4Â octets |
Valeur minimale pour
nice
:
4
Utilisation de la mémoire :
dict
* 11.5 (si
dict
<= 32 Mio);
dict
* 10.5 (si
dict
> 32 Mio)
mode= mode
Compression mode specifies the method to analyze the data produced by the match finder. Supported modes are fast and normal . The default is fast for presets 0â3 and normal for presets 4â9.
|
Habituellement, fast est utilisĂ© avec les chercheurs de correspondance de chaĂźne de hachage et normal avec les chercheurs de correspondance dâarbre binaire. Câest aussi ce que font les prĂ©rĂ©glages . |
nice= nice
SpĂ©cifier ce qui est considĂ©rĂ© comme une bonne longueur pour une correspondance. Une fois que la correspondance dâau moins nice octets est trouvĂ©e, lâalgorithme arrĂȘte de chercher de meilleures correspondances possibles.
|
Nice can be 2â273 bytes. Higher values tend to give better compression ratio at the expense of speed. The default depends on the preset . |
depth= profondeur
SpĂ©cifier la profondeur de recherche maximale dans lâoutil de recherche de correspondances. La valeur par dĂ©faut est 0 , ce qui fait que le compresseur dĂ©termine une profondeur raisonnable en fonction de mf et nice .
|
Reasonable depth for Hash Chains is 4â100 and 16â1000 for Binary Trees. Using very high values for depth can make the encoder extremely slow with some files. Avoid setting the depth over 1000 unless you are prepared to interrupt the compression in case it is taking far too long. |
|
|
Lors du décodage des flux bruts ( --format=raw ), LZMA2 nécessite seulement la taille du dictionnaire. LZMA1 nécessite aussi lc , lp et pb . |
--x86
[
=
options
]
--arm
[
=
options
]
--armthumb
[
=
options
]
--arm64
[
=
options
]
--powerpc
[
=
options
]
--ia64
[
=
options
]
--sparc
[
=
options
]
--riscv
[
=
options
]
Ajouter un filtre branch/call/jump (BCJ) Ă la chaĂźne de filtres. Ces filtres ne peuvent ĂȘtre utilisĂ©s que sâils ne sont pas le dernier filtre de la chaĂźne de filtrage.
|
A BCJ filter converts relative addresses in the machine code to their absolute counterparts. This doesnât change the size of the data but it increases redundancy, which can help LZMA2 to produce 0â15Â % smaller .xz file. The BCJ filters are always reversible, so using a BCJ filter for wrong type of data doesnât cause any data loss, although it may make the compression ratio slightly worse. The BCJ filters are very fast and use an insignificant amount of memory. |
|
|
Ces filtres BCJ présentent des problÚmes connus liés au taux de compression : |
âą
|
Some types of files containing executable code (for example, object files, static libraries, and Linux kernel modules) have the addresses in the instructions filled with filler values. These BCJ filters will still do the address conversion, which will make the compression worse with these files. |
|||
|
âą |
If a BCJ filter is applied on an archive, it is possible that it makes the compression ratio worse than not using a BCJ filter. For example, if there are similar or even identical executables then filtering will likely make the files less similar and thus compression is worse. The contents of non-executable files in the same archive can matter too. In practice one has to try with and without a BCJ filter to see which is better in each situation. |
Different instruction sets have different alignment: the executable file must be aligned to a multiple of this value in the input data to make the filter work.
|
Since the BCJ-filtered data is usually compressed with LZMA2, the compression ratio may be improved slightly if the LZMA2 options are set to match the alignment of the selected BCJ filter. Examples: |
âą
|
IA-64 filter has 16-byte alignment so pb=4,lp=4,lc=0 is good with LZMA2 (2Ë4=16). |
|||
|
âą |
RISC-V code has 2-byte or 4-byte alignment depending on whether the file contains 16-bit compressed instructions (the C extension). When 16-bit instructions are used, pb=2,lp=1,lc=3 or pb=1,lp=1,lc=3 is good. When 16-bit instructions arenât present, pb=2,lp=2,lc=2 is the best. readelf -h can be used to check if "RVC" appears on the "Flags" line. |
||
|
âą |
ARM64 is always 4-byte aligned so pb=2,lp=2,lc=2 is the best. |
||
|
âą |
The x86 filter is an exception. Itâs usually good to stick to LZMA2âs defaults ( pb=2,lp=0,lc=3 ) when compressing x86 executables. |
Tous les
filtres BCJ prennent en charge les mĂȘmes
options
:
start=
décalage
SpĂ©cifier le dĂ©calage de dĂ©part qui est utilisĂ© lors de la conversion entre les adresses relatives et absolues. Le dĂ©calage doit ĂȘtre un multiple de lâalignement du filtre (voir la table ci-dessus). Sa valeur par dĂ©faut est zĂ©ro. En pratique, cette derniĂšre convient ; indiquer un dĂ©calage personnalisĂ© est la plupart du temps inutile.
--delta [ = options ]
Ajouter le filtre Delta Ă la chaĂźne de filtres. Le filtre Delta ne peut ĂȘtre utilisĂ© que sâil nâest pas le dernier filtre dans la chaĂźne.
|
Currently only simple byte-wise delta calculation is supported. It can be useful when compressing, for example, uncompressed bitmap images or uncompressed PCM audio. However, special purpose algorithms may give significantly better results than Delta + LZMA2. This is true especially with audio, which compresses faster and better, for example, with flac (1). |
|
|
options prises en charge : |
dist= distance
Specify the distance of the delta calculation in bytes. distance must be 1â256. The default is 1.
|
Par exemple, avec dist=2 et une entrée huit octets A1 B1 A2 B3 A3 B5 A4 B7, la sortie sera A1 B1 01 02 01 02 01 02. |
Autres options
-q , --quiet
Supprimer les avertissements et les notifications. Indiquer cela deux fois supprimera aussi les erreurs. Cette option nâa aucun effet sur le statut de sortie. Cela dit, mĂȘme si un avertissement Ă©tait supprimĂ©, le statut de sortie indiquant un avertissement sera encore utilisĂ©.
-v , --verbose
Ătre bavard. Si lâerreur standard est connectĂ©e Ă un terminal, xz affichera une barre de progression. Indiquer --verbose deux fois donnera une sortie encore plus bavarde.
|
La barre de progression montre lâinformation suivante : |
âą
|
Le pourcentage de complĂ©tion est montrĂ© si la taille du fichier en entrĂ©e est connue. NĂ©anmoins, le pourcentage ne peut pas ĂȘtre montrĂ© en cas de redirection. |
|||
|
âą |
Quantité de données compressées produites (compression) ou consommées (décompression). |
||
|
âą |
Quantité de données non compressées consommées (compression) ou produites (décompression). |
||
|
âą |
Le taux de compression, calculé en divisant la quantité de données compréssées déjà traitées par la quantité de données décompressées déjà traitées. |
||
|
âą |
Vitesse de compression ou de décompression. Elle correspond à la quantité de données non compressées consommées (compression) ou produites (décompression) par seconde. Elle apparait quelques secondes aprÚs le début du traitement du fichier par xz . |
||
|
âą |
Temps écoulé dans le format M:SS ou H:MM:SS. |
||
|
âą |
Estimated remaining time is shown only when the size of the input file is known and a couple of seconds have already passed since xz started processing the file. The time is shown in a less precise format which never has any colons, for example, 2 min 30 s. |
When standard error is not a terminal, --verbose will make xz print the filename, compressed size, uncompressed size, compression ratio, and possibly also the speed and elapsed time on a single line to standard error after compressing or decompressing the file. The speed and elapsed time are included only when the operation took at least a few seconds. If the operation didnât finish, for example, due to user interruption, also the completion percentage is printed if the size of the input file is known.
-Q , --no-warn
Ne pas mettre lâĂ©tat de sortie Ă 2 mĂȘme si une condition mĂ©ritant un avertissement a Ă©tĂ© dĂ©tectĂ©e. Cette option nâaffecte pas le niveau de verbositĂ©, nĂ©anmoins, les deux options --quiet et --no-warn doivent ĂȘtre utilisĂ©es pour ne pas afficher dâavertissements, ni altĂ©rer le statut de sortie.
--robot
Afficher les messages dans un format analysable par une machine. Ceci est destinĂ© Ă faciliter lâĂ©criture des frontaux qui voudraient utiliser xz plutĂŽt que liblzma, ce qui pourrait ĂȘtre le cas pour diffĂ©rents scripts. La sortie avec cette option activĂ©e est destinĂ©e Ă rester stable sur les diffĂ©rentes versions de xz . Consulter le paragraphe ROBOT MODE pour les dĂ©tails.
--info-memory
Display, in human-readable format, how much physical memory (RAM) and how many processor threads xz thinks the system has and the memory usage limits for compression and decompression, and exit successfully.
-h , --help
Afficher un message dâaide dĂ©crivant les options les plus couramment utilisĂ©es et quitter.
-H , --long-help
Afficher un message dâaide dĂ©crivant toutes les options de xz et quitter.
-V , --version
Afficher le numéro de version de xz et de liblzma dans un format lisible par un humain. Pour obtenir une sortie analysable par la machine, spécifiez --robot avant --version .
MODE ROBOT
The robot mode is activated with the --robot option. It makes the output of xz easier to parse by other programs. Currently --robot is supported only together with --list , --filters-help , --info-memory , and --version . It will be supported for compression and decompression in the future.
Mode liste
xz --robot --list utilise une sortie sĂ©parĂ©e par des tabulations. La premiĂšre colonne de toutes les lignes possĂšde une chaĂźne qui indique le type dâinformation trouvĂ©e sur cette ligne :
|
name |
Câest toujours la premiĂšre ligne au dĂ©but de la liste dâun fichier. La seconde colonne de la ligne est le nom de fichier. |
||
|
file |
Cette ligne contient lâinformation globale sur le fichier .xz . Cette ligne est toujours Ă©crite aprĂšs la ligne name . |
||
|
stream |
Ce type de ligne nâest utilisĂ©e que lorsque --verbose a Ă©tĂ© indiquĂ©e. Il y a autant de lignes stream quâil y a de flux dans le fichier .xz . |
||
|
block |
Ce type de ligne nâest utilisĂ© seulement lorsque --verbose a Ă©tĂ© indiquĂ©e. Il y a autant de lignes block quâil y a de blocs dans le fichier .xz . Les lignes block sont affichĂ©es aprĂšs toutes les lignes stream ; les diffĂ©rents types de lignes ne sont pas imbriquĂ©s. |
summary
Ce type de ligne nâest utilisĂ© que lorsque --verbose a Ă©tĂ© indiquĂ© deux fois. Cette ligne est affichĂ©e aprĂšs toutes les lignes block . Comme la ligne file , la ligne summary contient lâinformation globale sur le fichier .xz .
|
totals |
Cette ligne est toujours la toute derniĂšre ligne de la sortie. Elle affiche les comptes et les tailles totaux. |
Les colonnes des lignes file :
|
2. |
Nombre de flux dans le fichier |
||
|
3. |
Nombre total de blocs dans le ou les flux. |
||
|
4. |
Taille compressée du fichier |
||
|
5. |
Taille décompressée du fichier |
||
|
6. |
Compression ratio, for example, 0.123 . If ratio is over 9.999, three dashes ( --- ) are displayed instead of the ratio. |
||
|
7. |
Liste de noms de contrĂŽles dâintĂ©gritĂ© sĂ©parĂ©s par des virgules. Les chaĂźnes suivantes sont utilisĂ©es pour les types de vĂ©rification connus : None , CRC32 , CRC64 et SHA256 . Pour le types de vĂ©rification inconnus, Unknown- N est utilisĂ©, oĂč N est un identifiant de vĂ©rification sous la forme dâun nombre dĂ©cimal (un ou deux chiffres). |
||
|
8. |
Taille totale du remplissage du flux dans le fichier |
Les colonnes des lignes stream :
|
2. |
Numéro de flux (le premier flux a le numéro 1) |
|||
|
3. |
Nombre de blocs dans le flux |
|||
|
4. |
Décalage de départ compressé |
|||
|
5. |
Décalage de départ décompressé |
|||
|
6. |
Taille compressée (ne comprend pas le remplissage du flux) |
|||
|
7. |
Taille décompressée |
|||
|
8. |
Taux de compression |
|||
|
9. |
Nom de la vĂ©rification dâintĂ©gritĂ© |
|||
|
10. |
Taille du remplissage de flux |
Les colonnes des lignes block :
|
2. |
Numéro du flux qui contient ce bloc |
||
|
3. |
Numéro du bloc relatif au commencement du flux (le premier bloc a pour numéro 1) |
||
|
4. |
Numéro du bloc relatif au début du fichier |
||
|
5. |
Décalage de départ compressé relatif au début du fichier |
||
|
6. |
Décalage de départ décompressé relatif au début du fichier |
||
|
7. |
Taille compressĂ©e totale du bloc (en-tĂȘtes inclus) |
||
|
8. |
Taille décompressée |
||
|
9. |
Taux de compression |
||
|
10. |
Nom de la vĂ©rification dâintĂ©gritĂ© |
Si --verbose a Ă©tĂ© indiquĂ© deux fois, les colonnes additionnelles sont inclues sur les lignes block . Elles ne sont pas affichĂ©es avec un seul --verbose , car lâobtention de ces informations nĂ©cessite de nombreuses recherches et peut donc ĂȘtre lente :
|
11. |
Valeur de la vĂ©rification dâintĂ©gritĂ© en hexadĂ©cimal |
||
|
12. |
Taille dâen-tĂȘte de bloc |
||
|
13. |
Drapeaux du bloc : c indique que la taille compressĂ©e est prĂ©sente, et u indique que la taille dĂ©comprĂ©ssĂ©e est prĂ©sente. Si le drapeau nâest pas indiquĂ©, un tiret ( - ) est affichĂ© Ă la place pour que la longueur de la chaĂźne reste fixe. De nouveaux drapeaux pourraient ĂȘtre ajoutĂ©s Ă la fin de la chaĂźne dans le futur. |
||
|
14. |
Taille des donnĂ©es effectivement compressĂ©es dans le bloc (en excluant lâen-tĂȘte de bloc, le remplissage de bloc et les champs de vĂ©rification). |
||
|
15. |
Quantité de mémoire (en octets) nécessaire pour décompresser ce bloc avec cette version de xz . |
||
|
16. |
ChaĂźne de filtrage. Remarquez que la plupart des options utilisĂ©es au moment de la compression ne peuvent pas ĂȘtre connues, car seules les options nĂ©cessaires pour la dĂ©compression sont stockĂ©es dans les en-tĂȘtes .xz . |
Les colonnes des lignes summary :
|
2. |
Quantité de mémoire (en octets) nécessaire pour décompresser ce fichier avec cette version de xz . |
||
|
3. |
yes ou no indique si tous les en-tĂȘtes de bloc stockent Ă la fois la taille compressĂ©e et la taille dĂ©compressĂ©e. |
Depuis xz 5.1.2alpha:
|
4. |
Version minimale de xz nécessaire pour décompresser le fichier. |
Les colonnes de la ligne totals :
|
2. |
Nombre de flux |
||
|
3. |
Nombre de blocs |
||
|
4. |
Taille compressée |
||
|
5. |
Taille décompressée |
||
|
6. |
Taux de compression moyen |
||
|
7. |
Liste sĂ©parĂ©e par des virgules des noms de vĂ©rification dâintĂ©gritĂ© qui Ă©taient prĂ©sents dans les fichiers |
||
|
8. |
Taille de remplissage de flux |
||
|
9. |
Nombre de fichiers. Permet de garder lâordre des colonnes prĂ©cĂ©dentes comme sur les lignes file . |
Si --verbose a été indiqué deux fois, des colonnes supplémentaires sont incluses sur la ligne totals :
|
10. |
Quantité maximale de mémoire (en octets) nécessaire pour décompresser les fichiers avec cette version de xz . |
||
|
11. |
yes ou no indique si tous les en-tĂȘtes de bloc stockent Ă la fois la taille compressĂ©e et la taille dĂ©compressĂ©e. |
Depuis xz 5.1.2alpha:
|
12. |
Version minimale de xz nécessaire pour décompresser le fichier. |
Les versions futures pourront ajouter de nouveaux types de lignes et de nouvelles colonnes pourront ĂȘtre ajoutĂ©es aux types de lignes existants, mais les colonnes existantes ne seront pas modifiĂ©es.
Filters help
xz --robot --filters-help prints the supported filters in the following format:
filter : option =< value >, option =< value > ...
|
filter |
Name of the filter |
||
|
option |
Name of a filter specific option |
||
|
value |
Numeric value ranges appear as < min - max > . String value choices are shown within < > and separated by a | character. |
Each filter is printed on its own line.
Information de limite de mémoire
xz --robot --info-memory prints a single line with multiple tab-separated columns:
|
1. |
Total amount of physical memory (RAM) in bytes. |
||
|
2. |
Memory usage limit for compression in bytes ( --memlimit-compress ). A special value of 0 indicates the default setting which for single-threaded mode is the same as no limit. |
||
|
3. |
Memory usage limit for decompression in bytes ( --memlimit-decompress ). A special value of 0 indicates the default setting which for single-threaded mode is the same as no limit. |
||
|
4. |
Since xz 5.3.4alpha: Memory usage for multi-threaded decompression in bytes ( --memlimit-mt-decompress ). This is never zero because a system-specific default value shown in the column 5 is used if no limit has been specified explicitly. This is also never greater than the value in the column 3 even if a larger value has been specified with --memlimit-mt-decompress . |
||
|
5. |
Since xz 5.3.4alpha: A system-specific default memory usage limit that is used to limit the number of threads when compressing with an automatic number of threads ( --threads=0 ) and no memory usage limit has been specified ( --memlimit-compress ). This is also used as the default value for --memlimit-mt-decompress . |
||
|
6. |
Since xz 5.3.4alpha: Number of available processor threads. |
Dans le futur, la sortie de xz --robot --info-memory pourrait avoir plus de colonnes, mais jamais plus quâune ligne unique.
Version
xz --robot --version prints the version number of xz and liblzma in the following format:
XZ_VERSION=
XYYYZZZS
LIBLZMA_VERSION=
XYYYZZZS
|
X |
Version majeure. |
||
|
YYY |
Version mineure. Les numéros pairs sont stables. Les numéros impairs sont des versions alpha ou beta. |
||
|
ZZZ |
Niveau de correctif pour les options stables ou juste un compteur pour les options de développement. |
||
|
S |
StabilitĂ©. 0 est alpha, 1 est bĂȘta et 2 est stable. S devrait toujours ĂȘtre 2 quand YYY est pair. |
XYYYZZZS sont identiques sur les deux lignes si xz et liblzma sont issus de la mĂȘme version dâutilitaires XZ.
Exemples : 4.999.9beta est 49990091 et 5.0.0 est 50000002 .
STATUT DE SORTIE
|
0 |
Tout est bon. |
||
|
1 |
Une erreur est survenue. |
||
|
2 |
Quelquechose mĂ©ritant un avertissement sâest produit, mais aucune erreur vĂ©ritable nâest survenue. |
Les notifications (pas les avertissements ou les erreurs) affichĂ©es sur lâerreur standard nâaffectent pas le statut de sortie.
ENVIRONNEMENT
xz analyse les listes dâoptions sĂ©parĂ©es par des espaces Ă partir des variables dâenvironnement XZ_DEFAULTS et XZ_OPT , dans cet ordre, avant dâanalyser les options de la ligne de commandes. Remarquez que seules les options sont analysĂ©es depuis lâenvironnement des variables ; toutes les non-options sont ignorĂ©es silencieusement. Lâanalyse est faite avec getopt_long (3) qui est aussi utilisĂ© pour les arguments de la ligne de commandes.
Warning:
By setting these environment variables, one is effectively
modifying programs and scripts that run
xz
. Most of
the time it is safe to set memory usage limits, number of
threads, and compression options via the environment
variables. However, some options can break scripts. An
obvious example is
--help
which makes
xz
show
the help text instead of compressing or decompressing a
file. More subtle examples are
--quiet
and
--verbose
. In many cases it works well to enable the
progress indicator using
--verbose
, but in some
situations the extra messages create problems. The verbosity
level also affects the behavior of
--list
.
XZ_DEFAULTS
User-specific or system-wide default options. Typically this is set in a shell initialization script to enable xz âs memory usage limiter by default or set the default number of threads. Excluding shell initialization scripts and similar special cases, scripts should never set or unset XZ_DEFAULTS .
|
XZ_OPT |
This is for passing options to xz when it is not possible to set the options directly on the xz command line. This is the case when xz is run by a script or tool, for example, GNU tar (1): |
XZ_OPT=-2v tar caf foo.tar.xz foo
|
Scripts may use XZ_OPT , for example, to set script-specific default compression options. It is still recommended to allow users to override XZ_OPT if that is reasonable. For example, in sh (1) scripts one may use something like this: |
XZ_OPT=${XZ_OPT-"-7e"}
export XZ_OPT
Compatibilité des utilitaires LZMA
La syntaxe de la ligne de commande de xz est quasimment un sur-ensemble de lzma , unlzma et lzcat comme ils sont trouvés dans les utilitaires LZMA 4.32.x . Dans la pluspart des cas, il est possible de remplacer les outils LZMA par les outils XZ sans casser les scripts existants. Il existe cependant certaines incompatibilités qui peuvent parfois poser des problÚmes.
Niveaux de préréglage de la compression
La numĂ©rotation des prĂ©rĂ©glages de niveau de compression est diffĂ©rente entre les outils xz et LZMA. La diffĂ©rence la plus importante est la maniĂšre dont les tailles de dictionnaire sont affectĂ©es aux diffĂ©rents prĂ©rĂ©glages. La taille de dictionnaire est Ă peu prĂšs Ă©gale Ă celle dâutilisation de la mĂ©moire de la dĂ©compression.
Les diffĂ©rences de tailles des dictionnaires affectent aussi lâutilisation de la mĂ©moire du compresseur, mais il y a quelques autres diffĂ©rences entre les outils LZMA et les outils XZ, qui rendent la diffĂ©rence encore plus grande :
Le niveau de prĂ©rĂ©glage par dĂ©faut dans les outils LZMA est -7 alors que pour les outils XZ câest -6 , les deux utilisent ainsi un dictionnaire de 8 Mio par dĂ©faut.
Fichiers .lzma en flux ou non
The uncompressed size of the file can be stored in the .lzma header. LZMA Utils does that when compressing regular files. The alternative is to mark that uncompressed size is unknown and use end-of-payload marker to indicate where the decompressor should stop. LZMA Utils uses this method when uncompressed size isnât known, which is the case, for example, in pipes.
xz prend en charge la dĂ©compression des fichiers .lzma avec ou sans marqueur de fin de charge utile, mais tous les fichiers .lzma créés par xz utiliseront un marqueur de fin de charge utile et ont la taille non comprĂ©ssĂ©e marquĂ©e comme inconnue dans lâen-tĂȘte .lzma . Cela peut ĂȘtre un problĂšme dans quelques situations inhabituelles. Par exemple, un dĂ©compresseur .lzma dans un pĂ©riphĂ©rique embarquĂ© pourrait ne fonctionner quâavec des fichiers dont la taille non comprimĂ©e est connue. Si vous vous heurtez Ă ce problĂšme, vous devez utiliser les utilitaires LZMA ou LZMA SDK pour crĂ©er des fichiers .lzma avec une taille non compressĂ©e connue.
Fichiers .lzma non pris en charge
Le format .lzma autorise des valeurs lc jusquâĂ Â 8, et des valeurs lp jusquâĂ Â 4. Les outils LZMA peuvent dĂ©compresser des fichiers avec tous les lc et lp , mais crĂ©ez toujours les fichiers avec lc=3 et lp=0 . CrĂ©er des fichiers avec dâautres valeurs lc et lp est possible avec xz et avec LZMA SDK.
LâimplĂ©mentation du filtre LZMA1 dans liblzma nĂ©cessite que la somme de lc et lp soit infĂ©rieure ou Ă©gale Ă Â 4. Ainsi, les fichiers .lzma qui excĂšdent cette limitation ne peuvent pas ĂȘtre dĂ©compressĂ©s avec xz .
Les outils LZMA crĂ©ent seulement des fichiers .lzma qui ont une taille de dictionnaire de 2Ë n (une puissance de 2) mais acceptent les fichiers avec toutes les tailles de dictionnaire. Libzlma nâaccepte que les fichiers .lzma qui ont une taille dictionnaire de 2Ë n ou 2Ë n + 2Ë( n -1). Cela afin de diminuer les faux positifs lors de la dĂ©tection des fichiers .lzma .
Ces limitations ne devraient pas poser problÚme en pratique, car pratiquement tous les fichiers .lzma ont été compressés avec des réglages que liblzma accepte.
Déchets excédentaires
Lors de la dĂ©compession, lâutilitaire LZMA ignore silencieusement tout ce qui est aprĂšs le premier flux .lzma . Dans la majoritĂ© des situations, câest un bogue. Cela veut dire aussi que les outils LZMA ne gĂšrent pas la dĂ©compression de fichiers .lzma concatĂ©nĂ©s.
Sâil reste des donnĂ©es aprĂšs le premier flux .lzma , xz considĂšre que le fichier est corrompu sauf si --single-stream a Ă©tĂ© utilisĂ©. Cela peut casser des scripts obscurs qui ont supposĂ© que les dĂ©chets de fin de ligne sont ignorĂ©s.
NOTES
La sortie compressée peut varier
La sortie compressĂ©e exacte produite par les mĂȘme fichiers non compressĂ©s en entrĂ©e peut varier en fonction des diffĂ©rentes versions de lâutilitaire XZ, mĂȘme si les options de compression sont identiques. En effet, il est possible dâamĂ©liorer lâencodeur (compression plus rapide ou meilleure) sans affecter le format du fichier. La sortie peut mĂȘme varier entre diffĂ©rentes compilations de la mĂȘme version dâutilitaire XZ, si des options de construction diffĂ©rentes sont utilisĂ©es.
Cela signifie quâune fois que --rsyncable a Ă©tĂ© implĂ©mentĂ©, les fichiers rĂ©sultants ne seront pas nĂ©cessairement synchronisables avec rsync Ă moins que les nouveaux et anciens fichiers nâaient Ă©tĂ© compressĂ©s avec la mĂȘme version de xz. Ce problĂšme peut ĂȘtre rĂ©solu si une partie de lâimplĂ©mentation est gelĂ©e pour garantir la stabilitĂ© de la sortie rsyncable Ă travers les versions de xz.
Décompresseurs .xz embarqués
Les implĂ©mentations de dĂ©compresseur embarquĂ© comme XZ Embedded ne gĂšrent pas nĂ©cessairement les fichiers créés avec dâautres types de vĂ©rification dâintĂ©gritĂ© que none et CRC32 . Comme la valeur par dĂ©faut est --check=crc64 , vous devez utiliser --check=none ou --check=crc32 lors de la crĂ©ation de fichiers pour les systĂšmes embarquĂ©s.
En dehors des systĂšmes embarquĂ©s, tous les dĂ©compresseurs de format .xz gĂšrent tous les types de vĂ©rification ou sont au moins capables de dĂ©compresser le fichier sans effectuer la vĂ©rification dâintĂ©gritĂ© si ce type de vĂ©rification particuliĂšre nâest pas pris en charge.
XZ Embedded prend en charge les filtres BCJ, mais seulement avec le décalage de départ par défaut.
EXEMPLES
Bases
Compresser le fichier toto en toto.xz en utilisant le niveau de compression par défaut ( -6 ) et supprimer toto si la compression réussit :
xz foo
DĂ©compresser bidule.xz en bidule et ne pas supprimer bidule.xz mĂȘme si la compression rĂ©ussit :
xz -dk bar.xz
Create baz.tar.xz with the preset -4e ( -4 --extreme ), which is slower than the default -6 , but needs less memory for compression and decompression (48Â MiB and 5Â MiB, respectively):
tar cf - baz | xz -4e > baz.tar.xz
Un mĂ©lange de fichiers compressĂ©s et non compressĂ©s peuvent ĂȘtre dĂ©compressĂ©s vers la sortie standard avec une simple commande :
xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt
Compression en parallĂšle de plusieurs fichiers
Sur GNU et *BSD, find (1) et xargs (1) peuvent ĂȘtre utilisĂ©s pour mettre en parallĂšle la compression de plusieurs fichiers :
find . -type f
\! -name â*.xzâ -print0 \
| xargs -0r -P4 -n16 xz -T1
Lâoption P passĂ©e Ă xargs (1) fixe le nombre de processus xz en parallĂšles. La meilleure valeur pour lâoption n dĂ©pend du nombre de fichiers Ă compresser. S-il nây a que quelques fichiers, la valeur sera probablement 1 ; avec des dizaines de milliers de fichiers, 100 ou mĂȘme plus serait appropriĂ© pour rĂ©duire le nombre de processus xz que xargs (1) crĂ©era Ă©ventuellement.
Lâoption -T1 de xz est lĂ pour le forcer en mode mono-thread, car xargs (1) est utilisĂ© pour contrĂŽler la quantitĂ© de mise en parallĂšle.
Mode robot
Calculer combien dâoctets ont Ă©tĂ© Ă©conomisĂ©s au total aprĂšs avoir compressĂ© plusieurs fichiers :
xz --robot --list *.xz | awk â/Ëtotals/{print $5-$4}â
Un script peut vouloir savoir quâil utilise une version suffisamment rĂ©cente de xz . Le script sh (1) suivant vĂ©rifie que le numĂ©ro de version de lâoutil xz soit au minimum 5.0.0. Cette mĂ©thode est compatible avec les vieilles versions bĂȘta, qui ne gĂšrent pas lâoption --robot :
if ! eval
"$(xz --robot --version 2> /dev/null)" ||
[ "$XZ_VERSION" -lt 50000002 ]; then
echo "Your xz is too old."
fi
unset XZ_VERSION LIBLZMA_VERSION
RĂ©gler une limite dâutilisation de la mĂ©moire pour la dĂ©compression en utilisant XZ_OPT , mais si une limite a dĂ©jĂ Ă©tĂ© dĂ©finie, ne pas lâaugmenter :
NEWLIM=$((123
<< 20))Â Â # 123 MiB
OLDLIM=$(xz --robot --info-memory | cut -f3)
if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then
XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM"
export XZ_OPT
fi
Chaßnes de filtres de compresseur personnalisées
Lâutilisation la plus simple des chaĂźnes de filtres personnalisĂ©es est la personnalisation dâun prĂ©rĂ©glage LZMA2. Cela peut ĂȘtre utile, car les prĂ©rĂ©glages ne couvrent quâun sous-ensemble des rĂ©glages de compression potentiellement utiles.
Les colonnes CompCPU des tableaux des descriptions des options -0 à -9 et --extreme sont utiles lors de la personnalisation des préréglages LZMA2. Voici les parties pertinentes recueillies à partir de ces deux tableaux :
If you know that a file requires somewhat big dictionary (for example, 32Â MiB) to compress well, but you want to compress it quicker than xz -8 would do, a preset with a low CompCPU value (for example, 1) can be modified to use a bigger dictionary:
xz --lzma2=preset=1,dict=32MiB foo.tar
Avec certains fichiers, la commande ci-dessus peut ĂȘtre plus rapide que xz-6 tout en compressant bien mieux. Cependant, il faut souligner que seuls certains fichiers bĂ©nĂ©ficient dâun grand dictionnaire tout en gardant la valeur de CompCPU faible. La siutation la plus Ă©vidente oĂč un gros dictionnaire peut baucoup aider, est une archive contenant des fichiers trĂšs similaires de quelques megaoctets chacun. La taille de dictionnaire doit ĂȘtre significativement plus grosse que tout fichier individuel pour permettre Ă LZMA2 de tirer pleinement partie des similaritĂ©s entre des fichiers consĂ©cutifs.
Si une utilisation de la mĂ©moire Ă©levĂ©e pour la compression et dĂ©compression convient, et que le fichier Ă compresser a une taille de plusieurs centaines de megaoctets, il peut ĂȘtre utile dâutiliser un plus gros dictionnaire que celui fourni par xz-9 (64 Mio) :
xz -vv --lzma2=dict=192MiB big_foo.tar
Utiliser -vv ( --verbose--verbose ) comme dans lâexemple ci-dessus peut ĂȘtre utile pour voir les besoins en mĂ©moire du compresseur et du dĂ©compresseur. Rappelez-vous quâutiliser un dictionnaire plus gros que la taille du fichier non compressĂ© est un gachis de mĂ©moire, donc la commande ci-dessus nâest pas utile pour les petits fichiers.
Sometimes the compression time doesnât matter, but the decompressor memory usage has to be kept low, for example, to make it possible to decompress the file on an embedded system. The following command uses -6e ( -6 --extreme ) as a base and sets the dictionary to only 64Â KiB. The resulting file can be decompressed with XZ Embedded (thatâs why there is --check=crc32 ) using about 100Â KiB of memory.
xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo
If you want to squeeze out as many bytes as possible, adjusting the number of literal context bits ( lc ) and number of position bits ( pb ) can sometimes help. Adjusting the number of literal position bits ( lp ) might help too, but usually lc and pb are more important. For example, a source code archive contains mostly US-ASCII text, so something like the following might give slightly (like 0.1Â %) smaller file than xz -6e (try also without lc=4 ):
xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar
Using another filter together with LZMA2 can improve compression with certain file types. For example, to compress a x86-32 or x86-64 shared library using the x86 BCJ filter:
xz --x86 --lzma2 libfoo.so
Notez que lâordre des options de filtre est significatif. Si --x86 est indiquĂ© aprĂšs --lzma2 , xz donnera une erreur, car il ne peut y avoir aucun filtre aprĂšs LZMA2, et aussi parce que le filtre BCJ x86 ne peut pas ĂȘtre utilisĂ© comme dernier filtre dans la chaĂźne.
Le filtre Delta associĂ© Ă LZMA2 peut donner de bons rĂ©sultats avec les images bitmap. Cela devrait habituellement battre PNG, qui a quelques filtres avancĂ©s supplĂ©mentaires quâun simple delta, mais qui utilise Deflate pour la compression effective.
The image has to be saved in uncompressed format, for example, as uncompressed TIFF. The distance parameter of the Delta filter is set to match the number of bytes per pixel in the image. For example, 24-bit RGB bitmap needs dist=3 , and it is also good to pass pb=0 to LZMA2 to accommodate the three-byte alignment:
xz --delta=dist=3 --lzma2=pb=0 foo.tiff
If multiple images have been put into a single archive (for example, .tar ), the Delta filter will work on that too as long as all images have the same number of bytes per pixel.
VOIR AUSSI
xzdec (1), xzdiff (1), xzgrep (1), xzless (1), xzmore (1), gzip (1), bzip2 (1), 7z (1)
XZ Utils:
<https://tukaani.org/xz/>
XZ Embedded: <https://tukaani.org/xz/embedded.html>
LZMA SDK: <https://7-zip.org/sdk.html>