tar
命令是 Linux 和 Unix 系统中广泛使用的归档工具,主要用于将多个文件或目录合并成一个单一的文件,称为 tar 包(tarball)。tar
也支持压缩功能,能够与常见的压缩工具(如 gzip
、bzip2
、xz
等)结合使用,以减小归档文件的体积,掌握 tar
命令对于文件备份、数据传输和软件包管理至关重要。

tar
命令的基本语法
tar
命令的基本语法结构为:tar [选项] [归档文件] [文件或目录]
,选项用于控制 tar
的行为,归档文件是操作的目标文件,而文件或目录则是要处理的源数据,需要注意的是,tar
命令的选项通常可以合并使用,-xz
表示同时执行解压和解包操作。
常用选项详解
以下是 tar
命令中一些最常用的选项及其功能:
选项 | 长选项 | 功能描述 |
---|---|---|
-c |
--create |
创建新的归档文件 |
-x |
--extract |
从归档文件中提取文件 |
-t |
--list |
列出归档文件的内容 |
-f |
--file=ARCHIVE |
指定归档文件的名称 |
-v |
--verbose |
显示详细的处理过程 |
-z |
--gzip |
使用 gzip 进行压缩或解压 |
-j |
--bzip2 |
使用 bzip2 进行压缩或解压 |
-J |
--xz |
使用 xz 进行压缩或解压 |
-C |
--directory=DIR |
切换到指定目录后再执行操作 |
创建归档文件
使用 tar
命令创建归档文件时,通常结合 -c
(创建)、-f
(指定文件名)和 -v
(显示过程)选项,要将当前目录下的 documents
和 pictures
两个目录打包成 archive.tar
,可以使用以下命令:tar -cvf archive.tar documents pictures
,执行后,archive.tar
文件将包含 documents
和 pictures
目录及其所有子文件和子目录。
压缩归档文件
tar
本身不提供压缩功能,但可以调用外部压缩工具,最常见的是使用 gzip
(通过 -z
选项),生成的文件后缀通常为 .tar.gz
或 .tgz
,将上述归档文件压缩为 archive.tar.gz
,命令为:tar -czvf archive.tar.gz documents pictures
,类似地,使用 -j
选项可以通过 bzip2
压缩,生成 .tar.bz2
文件;使用 -J
选项则通过 xz
压缩,生成 .tar.xz
文件,后者压缩率更高但速度较慢。

解压和提取文件
解压 tar
文件时,需要根据压缩类型选择对应的选项,解压 archive.tar.gz
文件并提取到当前目录,可以使用:tar -xzvf archive.tar.gz
,如果需要将文件提取到指定目录,可以通过 -C
选项实现,tar -xzvf archive.tar.gz -C /path/to/target/directory
,对于未压缩的 .tar
文件,只需使用 -x
和 -f
选项即可,如 tar -xvf archive.tar
。
列出归档文件内容
在不解压的情况下查看归档文件的内容,可以使用 -t
选项,列出 archive.tar.gz
中的文件列表,命令为:tar -tzvf archive.tar.gz
,这对于快速检查归档文件是否包含所需内容非常有用。
实用技巧
- 排除特定文件:使用
--exclude
选项可以在创建归档文件时排除某些文件或目录,排除documents
目录下的temp
文件:tar -czvf archive.tar.gz documents --exclude='documents/temp'
。 - 追加文件到归档:使用
-r
(--append
)选项可以向已存在的归档文件中追加新文件,tar -rvf archive.tar newfile.txt
。 - 更新归档文件:使用
-u
(--update
)选项可以只追加比归档文件中更新的文件,tar -uvf archive.tar documents
。
相关问答 FAQs
问题 1:如何创建一个排除特定扩展名的归档文件?
解答:可以使用 --exclude
选项结合通配符实现,排除所有 .log
文件后打包 data
目录:tar -czvf archive.tar.gz --exclude='*.log' data
。
问题 2:如何解压 .tar.xz
文件到指定目录?
解答:使用 -J
选项指定 xz 压缩格式,并通过 -C
指定目标目录。tar -xJvf archive.tar.xz -C /opt/target
。
