Tar(Tape Archive)是Linux/Unix系统中用于归档文件的命令。它能够将多个文件或目录合并为一个文件,即打包,并且支持通过不同的压缩算法进行压缩。在日常的文件管理、备份和传输中,tar
命令是非常实用的工具。
打包与压缩的区别
- 打包:指的是将若干文件或目录整合成一个单独的文件,但不减少其大小。这个过程有助于简化文件管理和传输。
- 压缩:是指利用特定算法减小文件的大小,以节省存储空间或加快传输速度。通常情况下,压缩是在打包之后进行的,因为大多数压缩工具只能处理单个文件。
由于Linux中的很多压缩工具(如gzip, bzip2, xz等)只能对单一文件进行操作,所以在进行压缩之前,我们首先需要使用tar
命令来打包文件或目录。
常用参数解释
参数 | 描述 |
---|---|
-c |
创建一个新的归档文件。 |
-x |
从归档文件中解压文件。 |
-t |
列出归档文件的内容,而不解压它们。 |
-u |
更新已存在的归档文件,仅添加那些比归档中版本更新的文件。 |
-f |
指定归档文件名。此选项必须给出,且一般放在命令行最后。 |
-j |
使用bzip2进行压缩或解压。结果文件将以.tar.bz2 为扩展名。 |
-z |
使用gzip进行压缩或解压。结果文件将以.tar.gz 或.tgz 为扩展名。 |
-v |
显示操作过程中处理的文件名。 |
-p |
保留文件的原始权限。 |
-P |
保留绝对路径。 |
--exclude=FILE |
排除指定的文件或目录,不将其包含在归档中。 |
使用示例
创建压缩文件
根据所选的压缩算法,创建压缩文件的方法有所不同:
-
使用
bzip2
压缩:tar -jcvf 压缩文件名称.tar.bz2 要打包的文件或目录...
-
使用
gzip
压缩:tar -zcvf 压缩文件名称.tar.gz 要打包的文件或目录...
解压文件
要解压文件,只需将上述命令中的c
替换为x
,并确保选择正确的压缩选项(-z
或-j
)匹配原压缩格式:
-
解压
bzip2
文件到指定目录:tar -jxvf 压缩文件名称.tar.bz2 -C 目标目录
-
解压
gzip
文件到当前目录:tar -zxvf 压缩文件名称.tar.gz
请注意,-c
, -x
, -t
, -u
这些操作选项不能同时出现;每次只能执行一种类型的操作。