概述

tar 命令可用于将多个文件和目录一起打包成一个文件,但不压缩。如果要压缩,可以使用 gzipbzip2 这样的压缩工具。

在这里插入图片描述

语法

该命令的语法如下:

tar [选项] [文件]

该命令支持的选项有:

选项说明
-c创建压缩文件
-x解开压缩文件
-t, --list列出压缩包中的文件列表
-z用 gzip 格式压缩或解压
-j用 bzip2 格式压缩或解压
-v显示命令的执行过程
-f目标文件名
-p保留原始的权限与属性
-P使用绝对路径来压缩
-C解压包中所有文件到指定目录
–delete从包中删除某个文件
-r, --append将文件追加到包中
-u, --update更新包中的文件

注:该命令常用的选项就是打包 -cvf 和解包 -xvf,以及同其他压缩工具进行的压缩与解压缩(如使用 gzip 工具压缩是 -zcvfzxvf)。

使用

打包指定文件和目录【★★★★★】

如果想要将指定文件和目录进行打包,命令格式如下:

# 语法
tar -cvf tar包名 待压缩的文件或目录
# 示例
tar -cvf test.tar 

在这里插入图片描述

注:-c 表示创建压缩文件;-v 表示显示压缩过程;-f 放在最后一位,表示要压缩的包的名称。

列出 tar 包中文件列表【★★★★★】

如果要查看压缩包中的文件列表,则可以使用 -t 选项:

# 语法
tar -tvf tar包名
# 示例
tar -tvf test.tar

在这里插入图片描述

追加文件到 tar 包中

如果要对已经创建的 tar 包追加文件,则可以通过 -r 选项:

# 语法
tar -rvf tar包名 待追加文件
# 示例
tar -rvf test.tar 123.log

在这里插入图片描述

解压包中文件到当前目录【★★★★★】

如果要解压包中原有的文件和目录到当前目录,则需要通过 -x 选项:

# 语法
tar -xvf tar包名
# 示例
tar -xvf test.tar

在这里插入图片描述

解压包中文件到指定目录【★★★★★】

如果要解压包中所有文件到指定目录,则需要使用 -C 选项:

# 语法
tar -xvf tar包名 -C 指定解压目录
# 示例
tar -xvf test.tar -C 

在这里插入图片描述

使用 gzip 压缩打包【★★★★★】

tar 只具有打包的效果,但并不具有压缩的能力,而如果要压缩可以使用 gzip 工具对其压缩,即使用 -z 选项。这种 tar 文件的扩展名是 .tar.gz.tgz

# 语法
tar -zcvf 压缩包名 待压缩文件或目录
# 示例
tar -zcvf test.tar.gz 123.log inputrc.sh log.txt test/

在这里插入图片描述

注:如果要解压缩则使用 tar -zxvf 压缩包名 命令。

在这里插入图片描述

使用 bzip2 压缩打包

如果使用 bzip2 工具对其压缩,即使用 -j 选项。这种 tar 文件的扩展名是 .tar.bz2.tbz

# 语法
tar -jcvf 压缩包名 待压缩文件或目录
# 示例
tar -jcvf test.tar.bz2 123.log inputrc.sh log.txt test/

在这里插入图片描述

注:如果要解压缩则使用 tar -jxvf 压缩包名 命令。

在这里插入图片描述

使用绝对路径

如果我们仍然用上面的选项对绝对路径进行打包。就会报错:tar: Removing leading /' from member names

在这里插入图片描述
但其实压缩包是生成了的,但为了避免出现这个问题,我们可以加上 -P 选项,就能使用绝对路径来压缩打包了。

# 语法,注意 P 要在 f 的前面,因为 -f 选项跟文件名
tar -zcvPf 压缩包名 待压缩文件的绝对路径
# 示例
tar -zcvPf /home/zhangsan/hello.txt.tar.gz /home/zhangsan/hello.txt

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐