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 . , unxz xzcat xz (xz -d xz -dc) . xz gzip(1) bzip2(1) . .xz , LZMA .lzma RAW . , lzip .lz . xz . <> <> -, xz . xz ( <> ). , xz . --stdout , - <> <> : o , (.xz or .lzma) . o , .xz, .lzma, .lz . xz .txz, .tlz , .tar . , <> . , xz , <> : o <> . , . o <> . o <> setuid, setgid, . o , <> (.xz .xz .txz, .lzma .lzma .tlz). o , <> (.xz, .txz, .lzma, .tlz, .lz) . <> , xz , , , , <> . , <> . xz . , --keep <> . <> . xz SIGINFO SIGUSR1 . --verbose . xz . . , 5% 20% . , xz -9 65MiB . , .xz . . , xz . , ( , ulimit(1) mmap(2) ). --memlimit=<> . XZ_DEFAULTS=--memlimit=150MiB XZ_DEFAULTS . --memlimit-compress=<> --memlimit-decompress=<> . XZ_DEFAULTS , xz , --memlimit=<>( -M <>) . , xz . xz (--format=raw --no-adjust ). . , , xz -9 , xz -8 . .xz .xz . xz .xz . . 4 . 512 .xz . .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 ). -d, --decompress, --uncompress . -t, --test <> . --decompress --stdout . . -l, --list <> . , . , . <> . --verbose . --verbose , . 80 , , less -S . xz . --robot --list . -k, --keep . xz 5.2.6 , setuid, setgid, . setuid, setgid, . --force . -f, --force : o , . o , setuid, setgid, . setuid, setgid, . o --decompress --stdout xz , . xzcat --force xz cat(1) . , xz xz . --format=<> xz . -c, --stdout, --to-stdout . --keep . --single-stream .xz , . xz . xz .lzma , xz .lzma . --decompress --test . --no-sparse . xz 0 . . . -S .suf, --suffix=.suf , .xz .lzma .suf . .suf , . , .suf , .xz, .txz, .lzma, .tlz, .lz . .suf , . (--format=raw) , . --files[=<>] <> . <> . . (-) . , <> . --files0[=<>] --files[=<>] . -F 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 . 1 lzip 1.6 . xz ( ). raw ( ). . , --format=raw . -C <>, --check=<> . .xz . .xz : .lzma . .xz . : none . . . crc32 IEEE-802.3 () CRC32 . crc64 ECMA-182 CRC64 . CRC32 . sha256 SHA-256 . CRC32 CRC64 . .xz CRC32 . It is not possible to change or disable it. --ignore-check . .xz CRC32 . . : o .xz . o . SHA-256 . . -0 ... -9 . -6. . , . gzip(1) bzip2(1) . RAM . , gzip(1) bzip2(1) -9 . -0 ... -3 . -0 gzip -9 . bzip2(1) , . -4 ... -6 . -6 16MiB . (-5e -6e . --extreme .) -7 ... -9 -6 . 8MiB, 16MiB, 32MiB . , . , , . . : Preset DictSize CompCPU CompMem DecMem -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 DictSize LZMA2 . . -7 ... -9 . -6 . o CompCPU LZMA2 . CompCPU -6 ... -9 , . . --extreme . o CompMem - . xz . o DecMem . , . LZMA2 MiB . - - . --block-size , 3*3*_ + _ __ . , -6 , 660-670 MiB . -e, --extreme , . , -0 ... -3 . 4MiB 8MiB -3e -5e (CompCPU ) -4e -6e . . Preset DictSize CompCPU CompMem DecMem -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 , 8MiB , , -5, -6, -5e, -6e . --fast --best -0 -9 . LZMA . . --block-size=<> .xz , <> . - . - , - . - 3 <> . <> LZMA2 1MiB . LZMA2 1MiB 2-4. LZMA2 <> 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 2MiB o --filters3 2MiB o --filters2 4MiB o --filters2 4MiB o 2MiB o 4MiB . ( --block-size=<> ), <> . --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB 80MiB , 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, 1 MiB 11 . - . - - . --flush-timeout=<> , <> ( ) , . xz . <> <> . . , . <> 0 . POSIX . . , xz xz . --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 . <> 4020MiB <> 4020MiB . MIPS32 2000MiB . (0 max . .) 32 4GiB(MIPS32 2GiB) , . . --memlimit-decompress=<> . --list . <> , xz . <> --memlimit-compress=<> . --memlimit-mt-decompress=<> - . . xz . <> - , <> xz - . --memlimit-decompress , - - , - <> --memlimit-decompress . , --memlimit-mt-decompress=<> <> . xz --info-memory . . <> , <> , xz , RAM . . <> --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 , 1 , - . (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) . , , . . , , ( ) . . 4, 1~2. . , , . , . . --filters=<> --filters1=<> ... --filters9=<> liblzma . , . , ! (--format=raw), . (--filters=<>) . . <> . <> . , . <> xz -vv (--verbose ) . . --filters=<> . (--) . . : = . - 0 . --extreme e. --filters1=<> ... --filters9=<> --block-list 9 . BCJ LZMA2 . --filters-help --filters --filters1=<> ... --filters9=<> . --lzma1[=<>] --lzma2[=<>] LZMA1 LZMA2 . . LZMA1 , LZMA1 .lzma . LZMA2 LZMA1 LZMA1 . .xz LZMA2 LZMA1 . LZMA1 LZMA2 . LZMA1 LZMA2 <> : preset=<> LZMA1 LZMA2 <> <> . <> , . 0 9 , -0 ... -9 . e , --extreme . <> , LZMA1 LZMA2 6 <> . dict=<> ( ) <> . ( ) , . . , <> , . <> 64KiB 64MiB . 4KiB . 1.5GiB(1536MiB) . 4GiB 4GiB LZMA1 LZMA2 . <> (mf) LZMA1 LZMA . ( ) <> , . .xz <> 2^n 2^n + 2^(n-1) , <> . <> .xz . lc=lc . 0 4. 3. , lc lp 4 . . , 8 . lc . , , . US-ASCII 3 010, 011. lc 3, . () (3) . lc=4 . , . , lc=2 . lp=lp . 0 4. 0. lp . pb . pb=pb . 0 4. 2. pb . 4 (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 , , . . <> . 0 hc3, 1-3 hc4, bt4 . . dict 2 . hc3 2, 3 nice : 3 : dict * 7.5 (: dict <= 16 MiB); dict * 5.5 + 64 MiB (: dict > 16 MiB) hc4 2, 3, 4 nice : 4 : dict * 7.5 (: dict <= 32 MiB); dict * 6.5 (: dict > 32 MiB) bt2 2 nice : 2 : dict * 9.5 bt3 2, 3 nice : 3 : dict * 11.5 (: dict <= 16 MiB); dict * 9.5 + 64 MiB (: dict > 16 MiB) bt4 2, 3, 4 nice : 4 : dict * 11.5 (: dict <= 32 MiB); dict * 10.5 (: dict > 32 MiB) mode=<> <> . <> fast normal . <> 0-3 fast, <> 4-9 normal. fast normal . <> . nice=nice nice . 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[=<>] //(BCJ) . . BCJ . LZMA2 .xz 0-15% . BCJ , BCJ , , . BCJ . BCJ : o (: , , ) . BCJ . o BCJ , BCJ . , . . BCJ . . . x86 1 32-bit 64-bit 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- LZMA2 pb=4,lp=4,lc=0 (2^4=16) . o RISC-V 16- (C ) 2- 4- . 16- , pb=2,lp=1,lc=3 pb=1,lp=1,lc=3 . 16- , pb=2,lp=2,lc=2 . "RVC" "Flags" readelf -h . o ARM64 4- pb=2,lp=2,lc=2 . o x86 . x86 LZMA2 (pb=2,lp=0,lc=3) . BCJ : start=<> <> . <> ( ). 0. . <> . --delta[=<>] . . . , 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 . . o () ( ). o () ( ). o . o . () ( ) . xz . o M:SS H:MM:SS . o xz . , , 2 30 . --verbose xz , , , , . . , . -Q, --no-warn 2 . , --quiet --no-warn . --robot . liblzma xz . xz . . --info-memory (RAM), xz , . -h, --help , . -H, --long-help xz , -V, --version xz liblzma . --version --robot . --robot . xz . --robot --list, --filters-help, --info-memory, --version . . xz --robot --list . : . . .xz . . --verbose . .xz . --verbose . .xz . . . --verbose . . , .xz . . . : 2. 3. 4. 5. 6. , 0.123 . 9.999, 3 (---) . 7. . None, CRC32, CRC64, SHA-256 . Unknown-N , N ( ) ID . 8. : 2. ( 1) 3. 4. 5. 6. ( ) 7. 8. 9. 10. : 2. 3. ( 1) 4. 5. 6. 7. ( ) 8. 9. 10. --verbose , . --verbose : 11. 16 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 0 . --memlimit-mt-decompress . 5. 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. xz 5.3.4alpha : Number of available processor threads. , xz --robot --info-memory , . xz --robot --version xz liblzma : XZ_VERSION=XYYYZZZS LIBLZMA_VERSION=XYYYZZZS X . YYY . . . ZZZ . S . 0 , 1 , 2 . S YYY 2 . xz liblzma XZ XYYYZZZS . : 4.999.9beta 49990091, 5.0.0 50000002. 0 . 1 . 2 , . ( ) . xz XZ_DEFAULTS, XZ_OPT , . , . getopt_long(3) , . 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 4.32.x lzma, unlzma lzcat . LZMA XZ . . xz LZMA . . . xz LZMA -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 XZ : xz LZMA 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 XZ -6 LZMA -7. 8MiB. vs .lzma .lzma . LZMA . ' ' end-of-payload . LZMA . xz .lzma end-of-payload , xz .lzma end-of-payload , .lzma ' ' . . , .lzma . , LZMA LZMA SDK .lzma . .lzma .lzma lc 8 , lp 4 . LZMA lc lp , lc=3 lp=0 . lc lp xz LZMA SDK . liblzma LZMA1 lc lp 4 . .lzma xz . LZMA 2^n (2 ) .lzma . liblzma 2^n, 2^n + 2^(n-1) .lzma . .lzma . .lzma liblzma . , LZMA .lzma . , . LZMA .lzma . .lzma , xz --single-stream . . XZ . ( ) . XZ . --rsyncable xz ( ) rsync . xz rsync . .xz XZ .xz none crc32 . --check=crc64 , --check=none --check=crc32 . , .xz , , , . XZ BCJ , . foo (-6) foo.xz , foo : xz foo bar.xz bar bar.xz : xz -dk bar.xz -6 , ( 48 Mib, 5B) -4e (-4 --extreme) baz.tar.xz : 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 xargs(1) -P xz . -n . 1. xargs(1) xz 100 . xz -T1 - . 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 . . -0 ... -9 CompCPU --extreme LZMA2 . : Preset CompCPU -0 0 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6 -5e 7 -6e 8 (: 32MiB) , xz -8 , CompCPU (: 1) : xz --lzma2=preset=1,dict=32MiB foo.tar , xz -6 . , CompCPU . . LZMA2 . , , xz -9 64MiB : xz -vv --lzma2=dict=192MiB big_foo.tar -vv (--verbose --verbose) . . , . , . -6e (-6 --extreme) 64KiB . XZ ( --check=crc32 ) 100KiB . xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo , (lc) (pb) . (lp) lc pb . , US-ASCII , xz -6e ( 0.1% ) (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 --lzma xz , LZMA2 , x86 BCJ . LZMA2 . PNG , PNG , Deflate . TIFF . . , 24 RGB dist=3 , LZMA2 3 pb=0 : 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 : LZMA SDK: Tukaani 2024-02-25 XZ(1)