XZ(1) XZ 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 . - xz . xz ( ) . xz . --stdout - : o (.xz .lzma) . o .xz .lzma .lz . xz .txz .tlz .tar. . xz : o . . o . o setuid setgid sticky. 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 . .xz . . xz . ( ulimit(1) mmap(2)). --memlimit=limit. XZ_DEFAULTS : XZ_DEFAULTS=--memlimit=150MiB. --memlimit-compress=limit --memlimit-decompress=limit. XZ_DEFAULTS xz --memlimit=limit ( -M limit) . 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 . . (unseekable). . --verbose. --verbose . 80 less -S . xz . --robot --list. -k, --keep . xz 5.2.6 xz setuid setgid sticky. setuid setgid sticky . --force. -f, --force : o . o setuid setgid sticky. setuid setgid sticky . o --decompress --stdout xz . xzcat --force cat(1) xz. xz xz . --format=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 .lz. .suf . (--format=raw) . --files[=file] . . (-) . . --files0[=file] --files[=file] (null). -F format, --format=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, --check=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). . -9 gzip(1) bzip2(1). -0 ... -3 . -0 gzip -9 . bzip2(1) . -4 ... -6 . -6 16 . ( -5e -6e . --extreme.) -7 ... -9 -6 . 8 16 32 . . . . : -0 256 0 3 1 -1 1 1 9 2 -2 2 2 17 3 -3 4 3 32 5 -4 4 4 48 5 -5 8 5 94 9 -6 8 6 94 9 -7 16 6 186 17 -8 32 6 370 33 -9 64 6 674 65 : o DictSize LZMA2. . -7 ... -9 . -6 . o CompCPU LZMA2 . CompCPU -6 ... -9 . --extreme. o CompMem . xz. o DecMem . . LZMA2 . . --block-size 3*3*DictSize CompMem DecMem. -6 660 670 . -e, --extreme (-0 ... -9) . -0 ... -3. 4 8 -3e -5e (CompCPU ) -4e -6e . . -0e 256 8 4 1 -1e 1 8 13 2 -2e 2 8 25 3 -3e 4 7 48 5 -4e 4 8 48 5 -5e 8 7 94 9 -6e 8 8 94 9 -7e 16 8 186 17 -8e 32 8 370 33 -9e 64 8 674 65 8 -5 -6 -5e -6e. --fast --best -0 -9 . LZMA. . --block-size=size .xz size . . . size . size LZMA2 1 . 2 4 LZMA2 1 . size LZMA2 LZMA2 . . . . . . xz . --block-list=items .xz . . 0 9 (:) . ( ) . . 0 . --filters1=filters ... --filters9=filters. 1 9. 0 . (:). --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB : o --filters1 2 o --filters3 2 o --filters2 4 o --filters2 4 o 2 o 4 . ( --block-size=size) . --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB 80 11 : 5 10 8 10 2 10 10 4 10 10 1 . . . --flush-timeout=timeout timeout ( ) . xz . timeout timeout . . . timeout 0 . POSIX. . xz xz . --no-sync . . . . xz . . --no-sync xz 5.7.1alpha. --memlimit-compress=limit . . 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 (2 MIPS32) . . --memlimit-decompress=limit . --list. xz . --memlimit-compress=limit . --memlimit-mt-decompress=limit . xz . xz . --memlimit-decompress --memlimit-decompress. --memlimit-mt-decompress=limit . xz --info-memory . . xz . . --memlimit-compress=limit . 0 . -M limit, --memlimit=limit, --memory=limit --memlimit-compress=limit --memlimit-decompress=limit --memlimit-mt-decompress=limit. --no-adjust . xz LZMA2. . (--format=raw). -T threads, --threads=threads . threads 0 xz ( ) . threads . . . threads 1 . threads 0 . ( xz 5.2.x ). threads +1. + 1. xz --no-adjust. + xz 5.4.0. . xz . xz . xz --info-memory. . --block-size=size. . --block-size=size. threads 0. xz 5.4.x 1. . (-0 ... -9 --extreme) . . (piping) . ( ). . . : . . . --filters=filters --filters1=filters ... --filters9=filters liblzma. . ! (--format=raw) . (--filters=filters). . . . . xz -vv ( --verbose ). . --filters=filters . (--). . : =. - . e --extreme. --filters1=filters ... --filters9=filters --block-list. BCJ LZMA2 . --filters-help --filters --filters1=filters ... --filters9=filters . --lzma1[=options] --lzma2[=options] LZMA1 LZMA2 . . LZMA1 .lzma LZMA1 . LZMA2 LZMA1 LZMA1. .xz LZMA2 LZMA1 . LZMA1 LZMA2 . LZMA1 LZMA2 : preset=preset LZMA1 LZMA2 preset. preset . 0 9 -0 ... -9. e --extreme. preset LZMA1 LZMA2 6. dict=size ( ) . () . . . 64 64 . 4 . 1.5 (1536 ). 4 LZMA1 LZMA2. (mf) LZMA1 LZMA2. ( ) . .xz 2^n 2^n + 2^(n-1) . .xz. lc=lc (literal context bits). 0 4 3. lc lp 4. (literals). 8 . lc . . US-ASCII 010 011 . lc 3 . (3) . lc=4. . lc=2 . lp=lp (literal position bits). 0 4 0. Lp . pb . pb=pb (position bits). 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). (preset): 0 hc3 1 3 hc4 bt4. . dict . hc3 2 3 nice: 3 : dict * 7.5 ( dict <= 16 ) dict * 5.5 + 64 ( dict > 16 ) hc4 2 3 4 nice: 4 : dict * 7.5 ( dict <= 32 ) dict * 6.5 ( dict > 32 ) bt2 2 nice: 2 : dict * 9.5 bt3 2 3 nice: 3 : dict * 11.5 ( dict <= 16 ) dict * 9.5 + 64 ( dict > 16 ) bt4 2 3 4 nice: 4 : dict * 11.5 ( dict <= 32 ) dict * 10.5 ( dict > 32 ) mode=mode . fast normal. fast 0-3 normal 4-9. fast normal . . nice=nice (nice) . nice . Nice 2-273 . . . depth=depth . 0 (depth) mf nice. (depth) 4-100 16-1000. depth . depth 1000 . (--format=raw) LZMA2 . LZMA1 lc lp pb. --x86[=] --arm[=] --armthumb[=] --arm64[=] --powerpc[=] --ia64[=] --sparc[=] --riscv[=] // (BCJ) . . BCJ . LZMA2 .xz 0-15%. BCJ BCJ . BCJ . BCJ : o ( Linux) . BCJ . o BCJ . . . BCJ . : . x86 1 32- 64- x86 ARM 4 ARM-Thumb 2 ARM64 4 4096 PowerPC 4 Big endian 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" "Flags". o ARM64 4 pb=2,lp=2,lc=2 . o x86 . LZMA2 (pb=2,lp=0,lc=3) x86 . BCJ : start= . ( ). . . --delta[=] . . . bitmap PCM . + 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 . (pipes). o ( ) ( ). o ( ) ( ). o . o . () ( ) . xz . o M:SS H:MM:SS. o xz . 2 min 30 s. --verbose xz . . . -Q, --no-warn 2 . --quiet --no-warn . --robot . xz liblzma . xz. ROBOT MODE . --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 (tabs). : name () . . file () .xz. name. stream () --verbose. stream .xz. block () --verbose. block .xz. block stream . summary () --verbose . block. file summary .xz. totals () . . file: 2. 3. () 4. 5. 6. 0.123. 9.999 (---) . 7. . : None CRC32 CRC64 SHA-256. Unknown-N N ( ). 8. stream: 2. ( 1) 3. 4. 5. 6. ( ) 7. 8. 9. 10. block: 2. 3. ( 1) 4. 5. 6. 7. ( ) 8. 9. 10. --verbose block. --verbose (seeks) : 11. 12. 13. : c u . (-) . . 14. ( ) 15. () xz 16. . .xz. summary: 2. () xz 3. yes no xz 5.1.2alpha: 4. xz totals: 2. 3. 4. 5. 6. 7. 8. 9. . file. --verbose totals: 10. () xz 11. yes no xz 5.1.2alpha: 12. xz . xz --robot --filters-help : :=<>,=<>... filter () option () value () . < > |. . 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 GNU 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 xz lzma unlzma lzcat LZMA 4.32.x. LZMA XZ . . xz LZMA. . . xz LZMA -0 256 -1 1 64 . -2 2 1 -3 4 512 . -4 4 1 -5 8 2 -6 8 4 -7 16 8 -8 32 16 -9 64 32 LZMA XZ : xz LZMA 4.32.x -0 3 -1 9 2 -2 17 12 . -3 32 12 . -4 48 16 -5 94 26 . -6 94 45 . -7 186 83 . -8 370 159 . -9 674 311 . LZMA -7 XZ -6 8 . . lzma. .lzma. LZMA . . LZMA . xz .lzma .lzma xz . . .lzma . LZMA LZMA SDK .lzma . lzma. .lzma lc 8 lp 4. LZMA lc lp lc=3 lp=0. lc lp xz LZMA SDK. LZMA1 liblzma lc lp 4. .lzma xz. LZMA .lzma 2^n ( 2) . liblzma .lzma 2^n 2^n + 2^(n-1). .lzma. .lzma liblzma. LZMA .lzma . . LZMA .lzma . .lzma xz --single-stream. . XZ . ( ) . XZ . --rsyncable rsync xz. rsync xz. xz. .xz XZ Embedded (check) 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 . 5 . ): 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 "Your xz is too old." 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 . . CompCPU -0 ... -9 --extreme LZMA2 . : -0 0 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6 -5e 7 -6e 8 ( 32 .) xz -8 CompCPU ( 1) : xz --lzma2=preset=1,dict=32MiB foo.tar xz -6 . CompCPU . . LZMA2 . 64 . xz -9: xz -vv --lzma2=dict=192MiB big_foo.tar -vv ( --verbose --verbose) . . . -6e ( -6 --extreme) 64 . . XZ Embedded ( --check=crc32) 100 . . 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 . LZMA2 . PNG Deflate . TIFF . (distance) . RGB 24 dist=3 pb=0 LZMA2 : xz --delta=dist=3 --lzma2=pb=0 foo.tiff ( tar.) . xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1) XZ: XZ Embedded: LZMA SDK: 2025-03-08 XZ(1)