Linux 多线程压缩与解压缩
tar
和 gzip
都是 Linux 和 Unix 系统中常用的归档和压缩工具,但它们的功能和作用有所不同。
tar
是 Linux 和类 Unix 系统中用于归档文件和目录的命令。其全称是 “tape archive”,最初用于将文件归档到磁带中,但现在主要用于创建、查看和解压归档文件。
tar
本身并不进行压缩,它只是将多个文件合并成一个归档文件。因此,tar
命令通常与 gzip
、bzip2
或 xz
等压缩工具配合使用,来创建压缩归档。通常,先使用 tar
打包文件,然后使用 gzip
进行压缩,生成 .tar.gz
或 .tgz
文件。这种组合常见于分发和备份文件。
常用选项
-
c
:创建归档文件(create
)。 -
x
:提取归档文件(extract
)。 -
t
:列出归档文件内容(list
)。 -
v
:显示详细输出(verbose
),显示归档过程中的文件名。 -
f
:指定归档文件的名称(file
)。该选项后面必须跟文件名。 -
z
:表示用gzip
解压和压缩。
tar
gzip 命令不支持多线程,使用其进行文件的压缩和解压速度较慢。因此,可以在压缩和解压时,将 gzip 命令替换为 pigz,通过多线程来加速压缩和解压的速度。
1# 从文件夹 folder1 folder2 压缩到 filename.tar.gz2tar --use-compress-program=pigz -cf filename.tar.gz folder1 folder23
4# 解压5tar --use-compress-program=pigz -xf filename.tar.gz6
7# 解压到指定目录8tar --use-compress-program=pigz -xf filename.tar.gz -C folder