Linux shell命令用法及常见用例之tar命令

2019-10-09 18:24:21刘景俊

-z表示要使用gzip支持来压缩或者解压文件,注意gzip的压缩的文件格式最好写成tar.gz。(注:tar.gz 和 tgz 是同一个意思)

打包压缩排除某些文件

示例:打包压缩并排除某些文件。

描述:将/home/test/images目录下,排除brooke-lark-275181.jpg和ben-white-138743.jpg之外的所有文件打包,并用gzip进行压缩,生成名为MyImages-18-06-02.tar.gz的归档文件,放在当前目录下。

# tar -czv -f MyImages-18-06-02.tar.gz --exclude=./brooke-lark-275181.jpg --exclude=./ben-white-138743.jpg /home/test/images
/home/test/images/alejandro-gonzalez-17189.jpg
/home/test/images/brenda-godinez-228181.jpg
/home/test/images/artur-rutkowski-97622.jpg

解压归档文件(默认)

示例:解压,默认解压。

描述:将名为MyImages-18-06-02.tar的归档文件解压至当前目录下。

# tar -xvf MyImages-18-06-02.tar
home/test/images/alejandro-gonzalez-17189.jpg
home/test/images/brenda-godinez-228181.jpg
home/test/images/artur-rutkowski-97622.jpg

其中,-x参数表示去解压一个归档文件,如果归档文件中有两个相同名字的文件,那么每一个文件都会被解压出来,然后最新的会覆盖旧的文件。注意这里没有指定-j参数,因为tar看到指定了-x参数,就知道这是解压操作,会自动判断该解压包的压缩类型。

解压归档文件并指定目录

示例:解压到一个指定目录。

描述:将名为MyImages-18-06-02.tar.gz的归档文件解压至一个指定的目录。

# tar -xv -f MyImages-18-06-02.tar -C /home/test/public_images
home/test/public_images/alejandro-gonzalez-17189.jpg
home/test/public_images/brenda-godinez-228181.jpg
home/test/public_images/artur-rutkowski-97622.jpg

查看压缩包文件信息

示例:查看压缩包文件信息。

描述:列出MyImages-18-06-02.tar.bz2中的文件信息,-v参数,会生成与ls(1)命令相近的输出。

# tar -tv -f MyImages-18-06-02.tar.gz
OR
# tar -tv -f MyImages-18-06-02.tar.bz2
-rw-r--r-- root/root 2176861 2018-06-02 21:26 home/test/images/alejandro-gonzalez-17189.jpg
-rw-r--r-- root/root 8452524 2018-06-02 21:26 home/test/images/brenda-godinez-228181.jpg
-rw-r--r-- root/root 1131986 2018-06-02 21:26 home/test/images/artur-rutkowski-97622.jpg

解压单个文件

示例:解压单个文件。

描述:将home/test/.bashrc这一个文件从归档文件中提取出来。

# tar -xv -f command-18-06-02.tar home/test/.bashrc
home/test/.bashrc

解压多个指定的文件

示例:解压多个指定的文件。

描述:将file1、file2等多个文件从归档文件中提取出来,可以用空格隔开多个文件,也可以用通配符的形式。