linux:zstd用法详解


1. 描述

zstd 是一个高性能的压缩工具,它可以在 Linux 系统中用来压缩和解压文件。

2. 语法

Usage : 
      zstd [args] [FILE(s)] [-o file] 

FILE    : a filename 
          with no FILE, or when FILE is - , read standard input
Arguments : 
 -#     : # compression level (1-19, default: 3) 
 -d     : decompression 
 -D file: use `file` as Dictionary 
 -o file: result stored into `file` (only if 1 input file) 
 -f     : overwrite output without prompting and (de)compress links 
--rm    : remove source file(s) after successful de/compression 
 -k     : preserve source file(s) (default) 
 -h/-H  : display help/long help and exit 

Advanced arguments : 
 -V     : display Version number and exit 
 -v     : verbose mode; specify multiple times to increase verbosity
 -q     : suppress warnings; specify twice to suppress errors too
 -c     : force write to standard output, even if it is the console
 -l     : print information about zstd compressed files 
--exclude-compressed:  only compress files that are not previously compressed 
--ultra : enable levels beyond 19, up to 22 (requires more memory)
--long[=#]: enable long distance matching with given window log (default: 27)
--fast[=#]: switch to very fast compression levels (default: 1)
--adapt : dynamically adapt compression level to I/O conditions 
--stream-size=# : optimize compression parameters for streaming input of given number of bytes 
--size-hint=# optimize compression parameters for streaming input of approximately this size
--target-compressed-block-size=# : make compressed block near targeted size 
 -T#    : spawns # compression threads (default: 1, 0==# cores) 
 -B#    : select size of each job (default: 0==automatic) 
--rsyncable : compress using a rsync-friendly method (-B sets block size) 
--no-dictID : don't write dictID into header (dictionary compression)
--[no-]check : integrity check (default: enabled) 
--[no-]compress-literals : force (un)compressed literals 
 -r     : operate recursively on directories 
--output-dir-flat[=directory]: all resulting files stored into `directory`. 
--format=zstd : compress files to the .zst format (default) 
--test  : test compressed file integrity 
--[no-]sparse : sparse mode (default: enabled on file, disabled on stdout)
 -M#    : Set a memory usage limit for decompression 
--no-progress : do not display the progress bar 
--      : All arguments after "--" are treated as files 

Dictionary builder : 
--train ## : create a dictionary from a training set of files 
--train-cover[=k=#,d=#,steps=#,split=#,shrink[=#]] : use the cover algorithm with optional args
--train-fastcover[=k=#,d=#,f=#,steps=#,split=#,accel=#,shrink[=#]] : use the fast cover algorithm with optional args
--train-legacy[=s=#] : use the legacy algorithm with selectivity (default: 9)
 -o file : `file` is dictionary name (default: dictionary) 
--maxdict=# : limit dictionary to specified size (default: 112640) 
--dictID=# : force dictionary ID to specified value (default: random)

Benchmark arguments : 
 -b#    : benchmark file(s), using # compression level (default: 3) 
 -e#    : test all compression levels from -bX to # (default: 1)
 -i#    : minimum evaluation time in seconds (default: 3s) 
 -B#    : cut file into independent blocks of size # (default: no block)
--priority=rt : set process priority to real-time

3. 参数

以下是一些常见的参数及其解释:

  1. -o--output:
    用于指定输出文件的名称。如果未指定,输出将默认发送到标准输出(stdout)。

  2. -d--decompress:
    用于指示 zstd 执行解压缩操作。

  3. -f--force:
    强制覆盖已存在的输出文件而不提示。

  4. -c--stdout:
    将输出发送到标准输出(stdout),而不是写入文件。

  5. -q--quiet:
    减少命令的输出信息,不显示进度条和警告。

  6. -v--verbose:
    增加命令的详细程度,显示更多信息。

  7. -t--test:
    测试压缩文件的完整性而不解压。

  8. -l--list:
    显示压缩文件的元数据,如压缩大小、原始大小、压缩级别等。

  9. -T#--threads=#:
    指定用于压缩和解压缩的线程数。

  10. -#:
    其中 # 是一个介于 1 到 22 的数字,用于指定压缩级别。数字越大,压缩率越高,但压缩和解压缩速度越慢。

  11. --long:
    使用 64 位模式进行压缩,允许处理大于 4GB 的文件。

  12. --ultra:
    使用超高压缩级别,提供更高的压缩率,但压缩和解压缩速度更慢。

  13. --fast:
    使用快速压缩模式,牺牲一些压缩率以提高压缩速度。

  14. --adapt:
    使用自适应压缩模式,根据数据特性动态调整压缩策略。

  15. --single-thread:
    强制使用单线程进行压缩或解压缩。

  16. --rm:
    在成功解压缩后删除源文件。

  17. --no-progress:
    不显示压缩过程中的进度条。

  18. --memory=[#]:
    指定用于压缩的内存大小,单位为 MB。

4. 例子

(1)压缩单个文件:

  zstd -o compressed_file.zst original_file

这个命令将 original_file 压缩成 compressed_file.zst

(2)解压缩文件:

zstd -d compressed_file.zst

这个命令将 compressed_file.zst 解压缩。

(3)使用特定压缩级别:

zstd -5 -o high_compression.zst large_file

这里使用了压缩级别 5 来压缩 large_file

(4)压缩文件夹:

zstd -r -o compressed_dir.zst directory_to_compress

这个命令递归地压缩 directory_to_compress 目录。

(5)解压缩目录:

zstd -d -o output_directory compressed_dir.zst

这个命令将 compressed_dir.zst 解压缩到 output_directory

(6)测试压缩文件的完整性:

zstd -t compressed_file.zst

这个命令测试 compressed_file.zst 是否完整。

(7)查看压缩文件的详细信息:

zstd -l compressed_file.zst

这个命令显示 compressed_file.zst 的详细信息,如压缩大小、原始大小等。

(8)使用多线程压缩:

zstd -T4 -o multithreaded.zst large_file

这个命令使用 4 个线程来压缩 large_file

(9)强制覆盖已存在的文件:

zstd -f -o existing.zst large_file

如果 existing.zst 已存在,使用 -f 参数强制覆盖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallerFL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值