前言:

tar命令本身没有压缩功能的,它只是把多个文件或目录打包成一个文件,并且打包出来的文件的大小比原来文件大小的总和还要大,这样会大大浪费我们的磁盘空间,在工作环境中这也不是我们想要的。想要把多个文件或目录打包成一个文件 并且进行压缩,这时,我们可以用tar命令与压缩命令相结合使用。在工作实践中tar命令通常与gzip和bzip2两种压缩格式相结合使用。

1、tar命令常用参数

参数 含义
j bzip2压缩格式
z gzip压缩格式
c 创建一个新归档
x 解除归档中的文件
v 详细输出
f 文件
t 列出归档内容
C 指定解压目录
X或--exclude 排除打包
2、bzip2压缩格式

命令格式:

            1、压缩命令: tar jcvf  xxx.tar.bz2  [file or directory]

            2、解压命令: tar jxvf  xxx.tar.bz2   -C  解压出来的文件所要存放的目录

实战案例:

########压缩########
[root@vms001 tar]# ls
001.txt 003.txt 005.txt oldboy-02 oldboy.tar.bzip2 wahaha-0002
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0001 wahaha-0003
[root@vms001 tar]# rm -f oldboy.tar.bzip2
[root@vms001 tar]#
[root@vms001 tar]# tar jcvf oldboy.tar.bz2 *
001.txt
002.txt
003.txt
004.txt
005.txt
oldboy-01
oldboy-02
oldboy-03
wahaha-0001/
wahaha-0001/passwd
wahaha-0002/
wahaha-0002/group
wahaha-0003/
wahaha-0003/services
[root@vms001 tar]# ls
001.txt 003.txt 005.txt oldboy-02 oldboy.tar.bz2 wahaha-0002
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0001 wahaha-0003
########解压########
[root@vms001 tar]# ls
001.txt 003.txt 005.txt oldboy-02 oldboy.tar.bz2 wahaha-0002
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0001 wahaha-0003
[root@vms001 tar]# ls /mnt/
[root@vms001 tar]# tar jxvf oldboy.tar.bz2 -C /mnt/ #-C 指定解压存放目录
001.txt
002.txt
003.txt
004.txt
005.txt
oldboy-01
oldboy-02
oldboy-03
wahaha-0001/
wahaha-0001/passwd
wahaha-0002/
wahaha-0002/group
wahaha-0003/
wahaha-0003/services
[root@vms001 tar]# ls /mnt/
001.txt 003.txt 005.txt oldboy-02 wahaha-0001 wahaha-0003
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0002
3、gzip压缩格式

命令格式:

            1、压缩命令:tar  zcvf   xxx.tar.gz   [file or directory]

            2、解压命令:tar  zxvf   xxx.tar.gz   -C  解压存放目录路径

实战案例:

###########压缩###########
[root@vms001 tar]# ls
001.txt 003.txt 005.txt oldboy-02 oldboy.tar.bz2 wahaha-0002
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0001 wahaha-0003
[root@vms001 tar]# tar zcvf oldboy_gzip.tar.gz *
001.txt
002.txt
003.txt
004.txt
005.txt
oldboy-01
oldboy-02
oldboy-03
oldboy.tar.bz2
wahaha-0001/
wahaha-0001/passwd
wahaha-0002/
wahaha-0002/group
wahaha-0003/
wahaha-0003/services
[root@vms001 tar]# ls
001.txt 004.txt oldboy-02 oldboy.tar.bz2 wahaha-0003
002.txt 005.txt oldboy-03 wahaha-0001
003.txt oldboy-01 oldboy_gzip.tar.gz wahaha-0002
###########解压###########
[root@vms001 tar]# ls
001.txt 004.txt oldboy-02 oldboy.tar.bz2 wahaha-0003
002.txt 005.txt oldboy-03 wahaha-0001
003.txt oldboy-01 oldboy_gzip.tar.gz wahaha-0002
[root@vms001 tar]# ls /mnt/
[root@vms001 tar]# tar zxvf oldboy_gzip.tar.gz -C /mnt/
001.txt
002.txt
003.txt
004.txt
005.txt
oldboy-01
oldboy-02
oldboy-03
oldboy.tar.bz2
wahaha-0001/
wahaha-0001/passwd
wahaha-0002/
wahaha-0002/group
wahaha-0003/
wahaha-0003/services
[root@vms001 tar]# ls /mnt/
001.txt 003.txt 005.txt oldboy-02 oldboy.tar.bz2 wahaha-0002
002.txt 004.txt oldboy-01 oldboy-03 wahaha-0001 wahaha-0003
4、排除压缩打包

排除打包参数:

1、--exclude

2、X

实战案例:

###########排除一个文件打包##########
[root@vms001 tar]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 9 16:19 001.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 002.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 003.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 004.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 005.txt
[root@vms001 tar]# tar jcvf txt.tar.bz2 ./ --exclude=./003.txt
./001.txt
./002.txt
./004.txt
./005.txt
###########排除多个文件打包##########
[root@vms001 tar]# ll
总用量 4
-rw-r--r--. 1 root root 0 7月 9 16:19 001.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 002.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 003.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 004.txt
-rw-r--r--. 1 root root 0 7月 9 16:19 005.txt
-rw-r--r--. 1 root root 23 7月 9 16:26 aa.txt
[root@vms001 tar]# tar jcvfX txt.tar.bz2 aa.txt ./

./001.txt
./004.txt
./005.txt
[root@vms001 tar]# cat aa.txt
aa.txt
002.txt
003.txt
提示:当需要只排除一个文件打包时,可以用--exclude参数进行排除打包。如果需要排除多个文件打包时,可以用大写X参数进行打包,把需要排除的文件名放在一个文件中,然后指定这个文件进行排除打包。例如,上述案例中把需要排除的文件名放在了aa.txt文件中,指定了这个文件进行了排除打包。

5、查看压缩文件中的内容

命令格式:

            tar  tf  xxx.tar.bz2或xxx.tar.gz

实战案例:

[root@vms001 tar]# ls
001.txt 002.txt 003.txt 004.txt 005.txt aa.txt txt.tar.bz2
[root@vms001 tar]# tar tf txt.tar.bz2
./001.txt
./004.txt
./005.txt
6、总结

参数组合:

1、bzip2压缩格式:

  压缩:jcvf

  解压:jxvf

2、gzip压缩格式:

 压缩:zcvf

 解压:zxvf

3、查看压缩文件内容:

 tf

排除打包参数:

1、--exclude

2、X