概述
tar
命令可用于将多个文件和目录一起打包成一个文件,但不压缩。如果要压缩,可以使用
gzip
、
bzip2
这样的压缩工具。
语法
该命令的语法如下:
tar[选项][文件]
该命令支持的选项有:
选项说明-c创建压缩文件-x解开压缩文件-t, --list列出压缩包中的文件列表-z用 gzip 格式压缩或解压-j用 bzip2 格式压缩或解压-v显示命令的执行过程-f目标文件名-p保留原始的权限与属性-P使用绝对路径来压缩-C解压包中所有文件到指定目录–delete从包中删除某个文件-r, --append将文件追加到包中-u, --update更新包中的文件
注:该命令常用的选项就是打包
-cvf
和解包
-xvf
,以及同其他压缩工具进行的压缩与解压缩(如使用
gzip
工具压缩是
-zcvf
与
zxvf
)。
使用
打包指定文件和目录【★★★★★】
如果想要将指定文件和目录进行打包,命令格式如下:
# 语法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
版权归原作者 二木成林 所有, 如有侵权,请联系我们删除。