简单写一下 zstd 命令行(Zstandard CLI)使用方法(压缩/解压文件夹、文件)以及参数解释


压缩

zstd 命令用法

可以使用 zstd --help 查看,用法是

1
zstd [args] [FILE(s)] [-o file]  

压缩整个文件夹/多个文件

zstd 是纯压缩算法,.zst是纯压缩格式,这意味着如果你想要压缩多个文件,你必须先将文件归档(仅打包为一个文件,不进行压缩),而不像 7z 之类的格式,拥有一个容器,可以直接归档并压缩

压缩文件夹的命令是:

1
tar -cvf - <DIR> | zstd -T0 > <OUTPUT>.tar.zst  

压缩多个文件的命令:

1
tar -cvf - <FILE1> <FILE2> <FILEn> | zstd -T0 > <OUTPUT>.tar.zst  
  • <DIR> 是将被压缩的文件夹,<FILE*> 是将被压缩的文件
  • <OUTPUT> 是输出文件名
  • 此命令使用 tar 进行归档并传递到 zstd-c 归档 v 详细 f 输出 - 到终端),zstd 进行多线程压缩,然后将 zstd 压缩的输出重定向到文件

压缩单个文件

命令是:

1
zstd -T0 <FILE> -o <OUTPUT>.zst

参数解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-#       : 压缩率,# 是一个数字,允许的值是 1-19,使用 --ultra 允许 1-22,默认值是 3
数字越大,压缩输出的文件越小,耗时越长,内存占用越大
-d : 解压
-o file : 输出到文件
-f : 强制执行,跳过所有检查
--rm : 压缩成功后删除源文件
-c : 强制 STDOUT,即使目标是终端(这可能会炸了你的终端)
-v : 详细
-q : 不输出警告,指定两次不输出错误
--no-progress : 不显示进度
--ultra : 解锁高压缩率
--fast : 光速压缩!
-T# : 多核压缩,0=全部核心
--test : 检查压缩包完整性
-M# : 解压内存上限
-b# : 测速,# 是压缩率等级,输出源文件大小,输出大小,压缩速度,解压速度

解压

解压需要使用 unzstd 命令,解压文件直接 unzstd 跟上文件名就好

1
unzstd <FILE>.zst