XZ(1) XZ Utils XZ(1) xz, unxz, xzcat, lzma, unlzma, lzcat - ,,.xz" ,,.lzma xz [...] [...] unxz xz --decompress. xzcat xz --decompress --stdout. lzma xz --format=lzma. unlzma xz --format=lzma --decompress. lzcat xz --format=lzma --decompress --stdout. , xz (xz -d xz -dc) unxz xzcat. xz gzip(1) bzip2(1). .xz , .lzma LZMA Utils . , .lz lzip . xz . file -, xz . xz ( ) . , xz . --stdout, - : o , (.xz .lzma) . o , .xz, .lzma .lz . xz .txz .tlz .tar. , . , xz : o . , . o . o ,,setuid, setgid" . o (.xz .txz .xz , .lzma .tlz .lzma ). o (.xz, .txz, .lzma, .tlz .lz). , xz , , , . , . xz . , -keep . . SIGINFO SIGUSR1 xz . , --verbose . xz . . 5 % 20 % . , xz -9 65 MiB . , .xz . . , xz , . , ( , ulimit(1) mmap(2)). --memlimit=. XZ_DEFAULTS, , XZ_DEFAULTS=--memlimit=150MiB. --memlimit-compress= --memlimit-decompress=. XZ_DEFAULTS xz --memlimit= ( -M ) . , xz . , xz ( --format=raw --no-adjust). . , , xz -9, , xz -8. ,,.xz" .xz . xz .xz . . . , , .xz 512 . .lzma . , . . KiB 1.024 (2^10). Ki, k, kB, K, KB KiB. MiB 1.048.576 (2^20). Mi, m, M, MB MiB. GiB 1.073.741.824 (2^30). Gi, g, G, GB GiB. max . , . -z, --compress . ( , unxz --decompress). , --keep. -d, --decompress, --uncompress . , --keep. -t, --test . --decompress --stdout . . -l, --list . , . , . , . , --verbose. , --verbose , , . 80 , , , less -S . xz . --robot --list. -k, --keep . xz 5.2.6, xz , ,,setuid", ,,setgid" . ,,setuid", ,,setgid" . --force. -f, --force : o , . o , ,,setgid", ,,setgid" . ,,setgid", ,,setgid" . o --decompress --stdout xz , . xzcat --force cat(1) xz. , xz , xz . --format= xz . -c, --stdout, --to-stdout , --keep. --single-stream .xz , . xz . xz .lzma , xz .lzma . --decompress --test. xz 5.7.1alpha, --single-stream --keep. --no-sparse . , , xz . . / . -S .suf, --suffix=.suf , .suf .xz .lzma. .suf, . , .suf .xz, .txz, .lzma, .tlz, or .lz. .suf, . (--format=raw), , . --files[=] ; , . . (-) ; . , . --files0[=] --files[=] ,,null" . -F , --format= : auto . , auto xz. , . ( --format=raw) . xz .xz , .xz . lzma, alone .lzma , .lzma . alone LZMA . lzip .lz . . .lz 0 1 . 0 lzip 1.3 . . . 0 lzip 1.18. lzip 1.4 1. 1 lzip 1.6. xz ( ). raw ( ). . , --format=raw , . -C , --check= . .xz . .xz ; .lzma . ( ) .xz . : none . . . crc32 CRC32 IEEE-802.3 (). crc64 CRC64 ECMA-182. , CRC32 . sha256 SHA-256. CRC32 CRC64. .xz CRC32. . --ignore-check . CRC32 .xz . . : o ,,.xz" . o . SHA-256 . . -0 ... -9 . -6. , . , . gzip(1) bzip2(1). , RAM-. , -9 gzip(1) bzip2(1). -0 ... -3 . -0 gzip -9 . bzip2(1) , . -4 ... -6 . -6 , 16 MiB RAM-. (-5e -6e . --extreme.) -7 ... -9 -6 . 8 MiB, 16 MiB 32 MiB. , . , , . . : -0 256 KiB 0 3 MiB 1 MiB -1 1 MiB 1 9 MiB 2 MiB -2 2 MiB 2 17 MiB 3 MiB -3 4 MiB 3 32 MiB 5 MiB -4 4 MiB 4 48 MiB 5 MiB -5 8 MiB 5 94 MiB 9 MiB -6 8 MiB 6 94 MiB 9 MiB -7 16 MiB 6 186 MiB 17 MiB -8 32 MiB 6 370 MiB 33 MiB -9 64 MiB 6 674 MiB 65 MiB : o LZMA2 . . -7 ... -9 . -6 , . o LZMA2 . , -6 ... -9, . , --extreme. o . xz . o . , . LZMA2 , MiB. . --block-size, 3*3* . , -6 660-670 MiB . -e, --extreme (-0 ... -9) , . , -0 ... -3. 4 MiB 8 MiB, -3e -5e ( CompCPU) -4e -6e. . -0e 256 KiB 8 4 MiB 1 MiB -1e 1 MiB 8 13 MiB 2 MiB -2e 2 MiB 8 25 MiB 3 MiB -3e 4 MiB 7 48 MiB 5 MiB -4e 4 MiB 8 48 MiB 5 MiB -5e 8 MiB 7 94 MiB 9 MiB -6e 8 MiB 8 94 MiB 9 MiB -7e 16 MiB 8 186 MiB 17 MiB -8e 32 MiB 8 370 MiB 33 MiB -9e 64 MiB 8 674 MiB 65 MiB , 8 MiB , -5, -6, -5e -6e. --fast --best -0 -9. LZMA Utils-. . --block-size= .xz , . , . , . . LZMA2 1 MiB, . 2-4 LZMA2 1 MiB. LZMA2 RAM- LZMA2 . , . . . . , . xz . --block-list= .xz , . . 0 9 (:) . ( ) . , . 0 . --filters1= ... --filters9=. 1-9. 0 , . , (:). , --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB : o --filters1 2 MiB o --filters3 2 MiB o --filters2 4 MiB o --filters2 4 MiB o 2 MiB o 4 MiB . ( --block-size=), . , --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB 80 MiB, 11 : 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 1 MiB. . , . --flush-timeout=_ , _ ( ) , . xz . _ , _ . . , . 0 . POSIX . . xz xz . --no-sync . . , , . . xz . . --no-sync xz 5.7.1alpha. --memlimit-compress= . , . , xz . : , LZMA2 . --format=raw --no-adjust, . , xz 1. : o . MiB . : --memlimit-compress=80MiB o (RAM). XZ_DEFAULTS . . : --memlimit-compress=70% o 0. max ( ). xz 32- : 4020 MiB, 4020 MiB. MIPS32 2000 MiB. ( 0 max . .) 32- 4 GiB (2 GiB MIPS32) . . --memlimit-decompress= . --list . , xz . --memlimit-compress= . --memlimit-mt-decompress= . ; xz . , xz . --memlimit-decompress, , --memlimit-decompress. , --memlimit-mt-decompress= . xz --info-memory . . , RAM- xz . . --memlimit-compress= . 0 . -M , --memlimit=, --memory= --memlimit-compress= --memlimit-decompress= --memlimit-mt-decompress=. --no-adjust . , xz LZMA2 . . (--format=raw). -T , --threads= . 0 xz . . . . 1 . , 0, . (xz 5.2.x .) , +1. + 1. xz --no-adjust. + xz 5.4.0. , . , xz . xz . xz --info-memory. . --block-size=. . , --block-size=. 0. xz 5.4.x 1. . , (-0 ... -9 -extreme) . , . . , , ( ). . , . : , - , . , . . --filters= --filters1= ... --filters9= ,,liblzma" . , . , ! (--format=raw), . (--filters=) . . . . , . , xz -vv ( , --verbose ). . --filters= . (--). . , : =. - . e --extreme. --filters1= ... --filters9= --block-list. , , BCJ LZMA2 . --filters-help --filters --filters1= ... --filters9=, . --lzma1[=] --lzma2[=] LZMA1 LZMA2 . . LZMA1 , .lzma , LZMA1. LZMA2 LZMA1 LZMA1. .xz LZMA2 LZMA1 . LZMA1 LZMA2 . LZMA1 LZMA2 : preset= LZMA1 LZMA2 . , . 0 9, -0 ... -9. e, --extreme. , LZMA1 LZMA2 6. dict= ( ) . () , . , . , , . 64 KiB 64 MiB. 4 KiB. 1.5 GiB (1536 MiB). 4 GiB, LZMA1 LZMA2 . (mf) LZMA1 LZMA2 . ( ) , . .xz 2^n 2^n + 2^(n-1), . .xz . lc=lc . 0 4; 3. , lc lp 4. . , 8- . lc . , , , . US-ASCII , 010 011 . lc 3, . (3) . , lc=4. . , lc=2. lp=lp . 0 4; 0. Lp . pb . pb=pb . 0 4; 2. Pb . (2^pb=2^2=4), . , pb . , (US-ASCII, ISO-8859-*, UTF-8), pb=0 . UTF-16 , pb=1 . 3 , pb=0 . pb lp, LZMA1 LZMA2 16- . LZMA1 LZMA2. mf=mf , . Hash Chain Binary Tree . : 0 hc3, 1-3 hc4, bt4. . . hc3 2- 3- : 3 : * 7.5 ( <= 16 MiB); * 5.5 + 64 MiB (if > 16 MiB) hc4 2-, 3- 4- : 4 : * 7.5 ( <= 32 MiB); * 6.5 ( > 32 MiB) bt2 2- : 2 : * 9.5 bt3 2- 3- : 3 : * 11.5 (if <= 16 MiB); * 9.5 + 64 MiB ( > 16 MiB) bt4 2-, 3-, 4- : 4 : * 11.5 (if <= 32 MiB); * 10.5 (if > 32 MiB) mode= . fast normal. fast 0-3 normal 4-9. fast Hash Chain normal Binary Tree . . nice= . nice , . 2-273 . . . depth= . 0, mf nice. 4-100 16-1000 . . 1000 . (--format=raw), LZMA2 . LZMA1 lc, lp pb. --x86[=] --arm[=] --armthumb[=] --arm64[=] --powerpc[=] --ia64[=] --sparc[=] --riscv[=] ,,branch/call/jump" (BCJ) . . BCJ . , , LZMA2 0-15 .xz . BCJ , BCJ , . BCJ . BCJ : o ( , , ) . BCJ , . o BCJ , . , . - . BCJ . : . x86 1 32- 64- x86 ARM 4 ARM-Thumb 2 ARM64 4 4096- PowerPC 4 IA-64 16 Itanium SPARC 4 RISC-V 2 BCJ- LZMA2, LZMA2 BCJ . : o IA-64 16- pb=4,lp=4,lc=0 LZMA2 (2^4=16). o RISC-V 2 4 16 ( C). 16 , pb=2,lp=1,lc=3 pb=1,lp=1,lc=3 . 16 , pb=2,lp=2,lc=2 . readelf -h ,,RVC" ,,". o ARM64 4- pb=2,lp=2,lc=2 . o x86 . LZMA2 (pb=2,lp=0,lc=3) x86 . BCJ : start= . ( ). . , ; . --delta[=] Delta . . . , , PCM . , Delta + LZMA2. , , , , flac(1). : dist= . 1-256. 1. , dist=2 A1 B1 A2 B3 A3 B5 A4 B7, A1 B1 01 02 01 02 01 02. -q, --quiet . . . , , . -v, --verbose . , xz . --verbose . : o . , . o () (). o () (). o , . o . () () . xz . o : ::. o xz . , , 2 30 . , --verbose xz , , , . . , , , . -Q, --no-warn 2 . , --quiet --no-warn . --robot . xz ,,liblzma", . xz . . --info-memory , , (RAM) xz . -h, --help , . -H, --long-help xz, -V, --version xz ,,liblzma" . , --robot --version. --robot. xz . --robot --list, --filters-help, --info-memory, --version. . xz --robot --list . : name () . . file () .xz . . stream () --verbose . .xz . block () --verbose . .xz . ; . summary () --verbose . . , .xz . totals () . . : 2. 3. () 4. 5. 6. , , 0.123. 9.999, (---) . 7. . : None, CRC32, CRC64 SHA-256. , Unknown-N, N ( ). 8. : 2. ( 1) 3. 4. 5. 6. ( ) 7. 8. 9. 10. : 2. 3. ( 1) 4. 5. 6. 7. ( ) 8. 9. 10. --verbose , . --verbose, : 11. 12. 13. : c , u . , (-) . . 14. ( , ) 15. ( ) xz 16. . , .xz . : 2. ( ) xz 3. yes no xz 5.1.2alpha: 4. xz : 2. 3. 4. 5. 6. 7. 8. 9. . . --verbose , : 10. ( ) xz 11. yes no xz 5.1.2alpha: 12. xz , . xz --robot --filters-help : :=<>,=<>... . < > |. . xz --robot --info-memory : 1. (RAM) . 2. (--memlimit-compress). 0 . 3. (--memlimit-decompress). 0 . 4. xz 5.3.4alpha: (--memlimit-mt-decompress). 5 . 3 --memlimit-mt-decompress. 5. xz 5.3.4alpha: (--threads=0) (--memlimit-compress). --memlimit-mt-decompress. 6. xz 5.3.4alpha: . , xz --robot --info-memory , . xz --robot --version xz ,,liblzma" : XZ_VERSION=XYYYZZZS LIBLZMA_VERSION=XYYYZZZS X . YYY . . ZZZ . S . 0 , 1 , 2 . S 2 YYY . XYYYZZZS xz ,,liblzma" XZ Utils-. : 4.999.9beta 49990091 5.0.0 50000002. 0 . 1 . 2 , . ( ) . xz XZ_DEFAULTS XZ_OPT, , . ; . getopt_long(3) . 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 xz xz . xz , , tar(1): XZ_OPT=-2v tar caf foo.tar.xz foo XZ_OPT, , . XZ_OPT . , sh(1) : XZ_OPT=${XZ_OPT-"-7e"} export XZ_OPT LZMA UTILS xz lzma, unlzma lzcat LZMA Utils 4.32.x. , LZMA Utils XZ Utils . , . xz LZMA Utils. . . xz LZMA Utils -0 256 KiB / -1 1 MiB 64 KiB -2 2 MiB 1 MiB -3 4 MiB 512 KiB -4 4 MiB 1 MiB -5 8 MiB 2 MiB -6 8 MiB 4 MiB -7 16 MiB 8 MiB -8 32 MiB 16 MiB -9 64 MiB 32 MiB , LZMA Utils XZ Utils, : xz LZMA Utils 4.32.x -0 3 MiB / -1 9 MiB 2 MiB -2 17 MiB 12 MiB -3 32 MiB 12 MiB -4 48 MiB 16 MiB -5 94 MiB 26 MiB -6 94 MiB 45 MiB -7 186 MiB 83 MiB -8 370 MiB 159 MiB -9 674 MiB 311 MiB LZMA Utils -7 XZ Utils -6, 8 MiB . - ,,.lzma" .lzma . LZMA Utils . . LZMA Utils , , , . xz .lzma , .lzma xz .lzma . . , .lzma . , LZMA Utils LZMA SDK .lzma . ,,.lzma" .lzma lc 8, lp 4. LZMA Utils lc lp, lc=3 lp=0. lc lp xz LZMA SDK. LZMA1 ,,liblzma" lc lp 4. , .lzma , , xz. LZMA Utils .lzma 2^n ( 2) . ,,liblzma" .lzma 2^n 2^n + 2^(n-1). .lzma . , .lzma ,,liblzma" . , LZMA Utils .lzma . , . LZMA Utils .lzma . .lzma , xz --single-stream. . XZ Utils . ( ) . XZ Utils , . --rsyncable , r- xz . r- xz . ,,.xz" .xz XZ Embedded none crc32. --check=crc64, --check=none --check=crc32 . , .xz , . XZ Embedded BCJ , . foo foo.xz (-6), foo : xz foo bar.xz bar bar.xz : xz -dk bar.xz baz.tar.xz -4e (-4 --extreme), -6, (48 MiB 5 MiB): tar cf - baz | xz -4e > baz.tar.xz : xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt GNU *BSD, find(1) xargs(1) : find . -type f \! -name '*.xz' -print0 \ | xargs -0r -P4 -n16 xz -T1 -P xargs(1) xz . -n . , 1; , 100 xz xargs(1) . -T1 xz , xargs(1) . : xz --robot --list *.xz | awk '/^totals/{print $5-$4}' xz. sh(1) xz 5.0.0. --robot : if ! eval "$(xz --robot --version 2> /dev/null)" || [ "$XZ_VERSION" -lt 50000002 ]; then echo " ,,xz" ." fi unset XZ_VERSION LIBLZMA_VERSION XZ_OPT, , : 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 LZMA2 . , . -0 ... -9 --extreme LZMA2 . : -0 0 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6 -5e 7 -6e 8 ( , 32 MiB) , xz -8 , ( , 1) : xz --lzma2=preset=1,dict=32MiB foo.tar , xz -6 . , . , , . LZMA2 . , , 64 MiB xz -9 : xz -vv --lzma2=dict=192MiB big_foo.tar -vv (--verbose --verbose) . , . , , , , -6e (-6 --extreme) 64 KiB. XZ Embedded ( --check=crc32) 100 KiB . xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo , (lc) (pb) . (lp) , lc pb . , US-ASCII , ( 0.1 %) xz -6e ( lc=4): xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar LZMA2 . , x86-32 x86-64 x86 BCJ : xz --x86 --lzma2 libfoo.so . --x86 --lzma2, xz , LZMA2, x86 BCJ . Delta LZMA2 . PNG, Deflate . , , TIFF. Delta . , RGB 24 dist=3, pb=0 LZMA2 : xz --delta=dist=3 --lzma2=pb=0 foo.tiff ( , .tar), Delta . xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1) XZ Utils: XZ Embedded: LZMA SDK: Tukaani 2025-03-08 XZ(1)