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. 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. preset , 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 , totals: 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) . : , xz. , . , . --help xz . --quiet --verbose. --verbose, . --list XZ_DEFAULTS . xz . , 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 08.03.2025. XZ(1)