LZ4 is a compression format, characterized by ultra-fast compression/decompression speed (the compression rate is not as good as gzip), if you particularly care about the compression speed, or the CPU resources of the current environment In case of shortage, you may consider this format. lz4 is a very fast lossless compression algorithm based on the byte-aligned LZ77 series compression scheme. lz4 offers compression speeds of 400 MB/s per core, which scales linearly with multi-core CPUs. It features extremely fast decoders with speeds of up to multiple GB/s per core, often hitting RAM speed limits on multi-core systems. lz4 follows the lz77 ideological theory mentioned above and achieves data compression through operations such as sliding windows, hash tables, and data encoding. The compression process uses at least 4 bytes as the scanning window to find matches, moving 1 byte each time for scanning, and compressing if duplicates are encountered. Centos7 has the lz4 command installed by default, which can compress and decompress lz4 format files.
lz4 command installation version is 1.7.5
[root@s76 ~ ]# lz4 -V
*** LZ4 command line interface 64-bits v1.7.5, by Yann Collet ***
daily use If you forget the lz4 command syntax format, we can get the help information of the lz4 command through lz4 --help or man lz4 command.
[root@s76 ~]# lz4 --help
[root@s76 ~]# man lz4
centos7 has the lz4 command installed by default. If it is not installed, you can use the yum installation method to install it.
[root@s76 ~]# yum install -y lz4 lz4-devel
[root@ s76 ~]# lz4 anaconda-ks.cfg test.lz4
Compressed 2927 bytes into 1825 bytes ==> 62.35%
Compression Use the parameter -m for multiple files. The compressed file name is the source file plus the lz4 suffix. The lz4 command can only compress a single file. If we need to compress multiple files into one file, we need to use the lz4 and tar commands together.
[root@s76 ~]# lz4 -m anaconda-ks.cfg original-ks.cfg
[root@s76 ~]# ll
total 16
-rw -------. 1 root root 2927 Feb 8 15:19 anaconda-ks.cfg
-rw-------. 1 root root 1825 Feb 8 15:19 anaconda-ks.cfg. lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
-rw-------. 1 root root 1216 Feb 8 15:19 original-ks.cfg.lz4
[root@s76 ~]# tar -cvf anaconda-ks.cfg original-ks.cfg |lz4 - 2.tar.lz4
Compressed 16 bytes into 35 bytes ==> ; 218.75%
lz4 can only compress files. If you need to compress the directory, you need to combine it with the tar command.
[root@s76 ~]# tar cvf - test | lz4 - 1.tar.lz4
test/
test/1.tar
Compressed 20480 bytes into 325 bytes ==> 1.59%
[root@s76 ~]# lz4 -- rm hi.txt hi.txt.lz4
Compressed 5 bytes into 24 bytes ==> 480.00%
[root@s76 ~]# ll
total 24
-rw-r–r– . 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r– r–. 1 root root 24 Feb 12 21:01 hi.txt.lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr -x. 2 root root 19 Feb 12 20:38 test
[root@s76 ~]# lz4 -d hi.txt. lz4
Decoding file hi.txt
hi.txt.lz4 : decoded 5 bytes
[root@s76 ~]# ll
total 28
-rw-r–r–. 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r–r–. 1 root root 5 Feb 12 21:01 hi.txt
-rw-r–r–. 1 root root 24 Feb 12 21:01 hi.txt.lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr-x. 2 root root 19 Feb 12 20:38 test
[root@s76 ~]# lz4 --rm -d hi.txt.lz4
Decoding file hi.txt
hi.txt.lz4 : decoded 5 bytes
[ root@s76 ~]# ll
total 24
-rw-r–r–. 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r–r–. 1 root root 5 Feb 12 21:01 hi.txt
-rw------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr-x. 2 root root 19 Feb 12 20:38 test
[root@s76 ~]# lz4 -9 hi.txt hi.txt.lz4
Compressed 5 bytes into 24 bytes ==> 480.00%
[root@s76 ~]# lz4 hi.txt.lz4 hi.txt
hi.txt already exists; do you wish to overwrite (y/N) ? y
Compressed 24 bytes into 43 bytes ==> 179.17%
[root@s76 ~]# lz4 -f hi.txt.lz4 hi.txt
Compressed 24 bytes into 43 bytes ==> ; 179.17%
[root@s76 ~]# cat hi.txt
hi,wuhs
[root@s76 ~]# lz4 - dc hi.txt.lz4
hi,wuhs
It takes 5 minutes and 18 seconds to decompress a 22G file. The decompressed size is 45G.
#lz4 [arg] [input ] [output]
Parameter | Parameter description |
---|---|
-1 | Fast compression (default) |
-9 | High compression |
-d | Decompress (default is .lz4 extension) |
-z | Force compression |
-f | Overwrite output without prompting |
-k | Keep source file (default) |
–rm | Delete source file after successful decompression/compression |
-h/-H | Show help /Long help and exit |
-V | Display version number and exit |
-v | Verbose mode |
-q | Cancel warnings; specifying it twice can also cancel errors |
-c | Force writing to stdout even if it is the console |
-t | Test compressed file integrity |
- m | Multiple input files (indicates automatic output file names) |
-r | Operation recursively on the directory (also set to -m) |
-l | Use old format compression (Linux kernel compression) |
The above is the detailed content of How to use the lz4 command of Linux command. For more information, please follow other related articles on the PHP Chinese website!