老学庵

天行健,君子以自强不息;地势坤,君子以厚德载物!

0%

Linux命令指南

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
2
% 多线程压缩
tar -cvf - ./QwQ-32B | pv -s $(du -sk ./QwQ-32B | awk '{print $1 * 1024}') | pigz -9 -p 16 > QwQ-32B.tar.gz
1
2
% 线程解压 
pv QwQ-32B.tar.gz | pigz -dc -p 16 | tar -xvf -