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 . -, 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 '. , .xz, '. ' '. , xz ', . ' , (, ulimit(1) ' mmap(2)). ' --memlimit=. , , XZ_DEFAULTS, , XZ_DEFAULTS=--memlimit=150MiB. --memlimit-compress=limit and --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 1024 (2^10). KiB Ki, k, kB, K KB. MiB 1048576 (2^20). MiB B, Mi, m, M MB. GiB 1073741824 (2^30). GiB B, Gi, g, G GB. 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, xz , , , , , setuid, setgid . setuid, setgid -. , , --force. -f, --force : o - , . o , , , , , setuid, setgid setuid, setgid -. o --decompress, --stdout, xz , . xzcat --force cat(1) , xz. , xz , . --format= xz . -c, --stdout, --to-stdout , . --keep. --single-stream .xz , . , xz . xz .lzma , xz .lzma . , --decompress --test. --no-sparse . , , xz , . , , ' , . . -S .suf, --suffix=.suf .suf , .xz .lzma. .suf, , . .suf, .xz, .txz, .lzma, .tlz .lz. .suf, . (--format=raw) , , . --files[=] ; file , . . (-) ; . , , . --files0[=] , --files[=], . -F format, --format= : auto . auto xz. . , ( --format=raw) . xz .xz .xz . lzma, alone .lzma .lzma . alone LZMA Utils. 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 (Ethernet). 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 , . . , , , , . , ' , , . : DictSize CompCPU CompMem DecMem -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, . . DictSize CompCPU CompMem DecMem -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 Utils. . --block-size= .xz . , - . , . . LZMA2 1 , . , 2-4 LZMA2 1 . , 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 2 o --filters3 2 o --filters2 4 o --filters2 4 o 2 o 4 . , ( , , --block-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=_ , _ ( ) , . , 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 ( '). 32- xz : 4020 , 4020 MiB. MIPS32 2000 MiB. ( 0 max. .) , 32- 4 (2 GiB MIPS32), , , . . '. --memlimit-decompress= ' . --list. , xz . . --memlimit-compress=, , . --memlimit-mt-decompress= ' . ; xz . , - , , xz . , --memlimit-decompress, , , , , --memlimit-decompress. ', --memlimit-mt-decompress= . xz --info-memory . , - ' ' . , , , ' ', 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. + prefix 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 64 . 4 . 1.5 (1536 ). 4 , 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 , ' . , . : 0 hc3, 1-3 -- hc4, bt4. . ' , , . hc3 2- 3- : 3 ': dict * 7.5 ( dict <= 16 ); dict * 5.5 + 64 ( dict > 16 ) hc4 2-, 3- 4- : 4 ': dict * 7.5 ( dict <= 32 ); dict * 6.5 ( dict > 32 ) bt2 2- : 2 ': dict * 9.5 bt3 2- 3- : 3 ': dict * 11.5 ( dict <= 16 ); dict * 9.5 + 64 ( dict > 16 ) bt4 2-, 3- 4- : 4 ': dict * 11.5 ( dict <= 32 ); dict * 10.5 ( dict > 32 ) mode= , , . fast () normal (). fast 0-3 normal 4-9. , fast, normal. . nice= , . , . 2-273 . . . depth= . 0, mf . 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 .xz 0-15 % . BCJ , BCJ , . BCJ , ' '. BCJ , ' : o , , (, ' , Linux) . BCJ , . o BCJ , , 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" "Flags". o ARM64 4 , pb=2,lp=2,lc=2. o x86 . , LZMA2 (pb=2,lp=0,lc=3), x86. BCJ : start= , . (. ). . , ; . --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 : ::. 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 . , , : . . .xz. name. stream , --verbose. stream, .xz. block , --verbose. block, .xz. block stream; . summary , --verbose . block. file, summary .xz. totals . . : 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, , : 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 : :=<>,=<>... 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 -- alpha, 1 -- beta, 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_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 UTILS xz lzma, unlzma lzcat LZMA Utils 4.32.x. LZMA Utils XZ Utils . , , . xz LZMA Utils. ' . ' . xz LZMA Utils -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 Utils XZ Utils, : xz LZMA Utils 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 Utils -7, XZ Utils -- -6, , 8 . .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 - ' rsyncable, xz. , , rsync 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 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. , . LZMA2 CompCPU -0 ... -9 --extreme. : CompCPU -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 BCJ x86 : xz --x86 --lzma2 libfoo.so , . --x86 --lzma2, xz , LZMA2 , BCJ x86 . Delta LZMA2 . , PNG, , , Deflate. , , TIFF. Delta , . , 24- RGB 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: LZMA SDK: Tukaani 25 2024 XZ(1)