du
du 用于计算文件或目录的磁盘使用情况。它帮助我们确定需要压缩的文件夹大小,用于为进度条工具(如 pv)提供总大小信息。
常用选项:
- -s:显示文件夹的总大小,而不是列出子目录的大小。
- -k:以 KiB(1024 字节为一单位)显示大小。
- -b:以byte为单位显示大小(macOS 无此选项)
tar
tar 是一个打包工具,用于将多个文件/目录打包为单一的归档文件(不压缩),然后可以通过管道传递给其他压缩工具。
常用选项:
- -c:创建新的归档。
- -v:显示详细信息(如每个被打包的文件名)。
- -f:指定输出文件名,或用 - 表示将数据传递到标准输出(如管道)。
- -:表示数据直接输出到标准输出(通常用于与其他工具结合,如 pv 和 pigz)。
pv
pv 是一个工具,用于监视通过管道传输的数据流,显示实时的进度、速度、已处理数据量和预计完成时间。
常用选项:
- -s
:指定总数据量(通常是以字节为单位)。若未指定,pv 会根据数据流猜测总量,但不准确。 - $(...):在命令中动态执行 du 并将输出传递给 pv。
- awk '{print $1 * 1024}':将 du 的输出(以 KiB 为单位)转换为字节。
pigz
pigz 是 gzip 的多线程版本,支持更高的压缩效率和速度。
常用选项:
- -9:指定最高压缩级别。
- -p
:指定线程数(根据你的 CPU 核心数设置)。
1 | 多线程压缩 |
1 | 线程解压 |