tar 归档和压缩-详解

tar命令在linux中是常使用的命令:(多以tar zxvf +文件 方式居多)

  • 归档:将2个或2个以上的文件打包成一个文件的过程
归档:tar -cvf 名称.tar 文件1 文件2 ... 文件n

解挡:tar -xvf 名称

例如: 

[root@localhost 1]# tar -cvf all.tar centos-release passwd 

[root@localhost 1]# tar -xvf all.tar 

例如:将centos-release和passwd打包成all.tar文件

[root@localhost 1]# ls
centos-release  passwd
[root@localhost 1]# tar -cvf all.tar centos-release passwd 
centos-release
passwd
[root@localhost 1]# ls
all.tar  centos-release  passwd

删除原文件,tar开后得到原文件:

[root@localhost 1]# ls
all.tar  centos-release  passwd
[root@localhost 1]# rm centos-release  passwd 
rm:是否删除普通文件 "centos-release"?y
rm:是否删除普通文件 "passwd"?y
[root@localhost 1]# ls
all.tar
[root@localhost 1]# ls
all.tar
[root@localhost 1]# tar -xvf all.tar 
centos-release
passwd
[root@localhost 1]# ls
all.tar  centos-release  passwd

tar到某个目录下面需要加上“-C”,比如:

[root@localhost 1]# ls ../2
[root@localhost 1]# tar -xvf all.tar -C ../2/
centos-release
passwd
[root@localhost 1]# ls ../2
centos-release  passwd

  • 压缩和解压

在归档的情况下,压缩文件的过程:

先看下刚才直接归档的大小:

[root@localhost 1]# ll -h
总用量 36K
-rw-r--r--. 1 root root  20K 9月  28 10:00 all.tar
-rw-r--r--. 1 root root  10K 9月  28 09:55 centos-release
-rw-r--r--. 1 root root 2.5K 9月  28 09:54 passwd

现在我们归档后压缩文件:

linux压缩常识:
tar -cvf是归档 在加上一个压缩命令就是归档压缩:比如 tar -zcvf
注意,对应命令对应对应压缩扩展名并且相应压缩需要相应的解压命令

归档: tar -cvf      解挡: tar -xvf
压缩: tar -zcvf     解压: tar -zxvf
压缩:  tar -jcvf     解压: tar -jxvf
压缩: tar -Jcvf     解压: tar -Jcvf

常用参数:
-z, --gzip 以 gzip 方式压缩 扩展名: tar.gz
-j : 以 bz2 方式压缩的 扩展名:tar.bz2
-J : 以 xz 方式压缩 扩展名:tar.xz

详解:(这里以tar.gz为例子)

[root@localhost 1]# ll -h
总用量 36K
-rw-r--r--. 1 root root  20K 9月  28 10:00 all.tar
-rw-r--r--. 1 root root  10K 9月  28 09:55 centos-release
-rw-r--r--. 1 root root 2.5K 9月  28 09:54 passwd
[root@localhost 1]# tar -zcvf all.tar.gz centos-release passwd 
centos-release
passwd
[root@localhost 1]# ll -h
总用量 40K
-rw-r--r--. 1 root root  20K 9月  28 10:00 all.tar
-rw-r--r--. 1 root root 1.2K 9月  28 10:19 all.tar.gz
-rw-r--r--. 1 root root  10K 9月  28 09:55 centos-release
-rw-r--r--. 1 root root 2.5K 9月  28 09:54 passwd

解压用相应的命令:

[root@localhost 1]# rm centos-release passwd 
rm:是否删除普通文件 "centos-release"?y
rm:是否删除普通文件 "passwd"?y
[root@localhost 1]# ls
all.tar  all.tar.gz
[root@localhost 1]# tar -zxvf all.tar.gz 
centos-release
passwd
[root@localhost 1]# ls
all.tar  all.tar.gz  centos-release  passwd

比较压缩后大小:

[root@localhost 1]# ll -h
总用量 48K
-rw-r--r--. 1 root root  20K 9月  28 10:00 all.tar
-rw-r--r--. 1 root root 1.4K 9月  28 10:27 all.tar.bz2
-rw-r--r--. 1 root root 1.2K 9月  28 10:19 all.tar.gz
-rw-r--r--. 1 root root 1.2K 9月  28 10:27 all.tar.xz
-rw-r--r--. 1 root root  10K 9月  28 09:55 centos-release
-rw-r--r--. 1 root root 2.5K 9月  28 09:54 passwd

当然这里小博主用的文件较小不易发现:

不压缩:            最大,速度最快
压缩后文件大小:    .gz > .bz2 > .xz
压缩比例越高,压缩文件越小,用的时间越久,虽然.xz压缩比例高,但是用时却久的多,所以一般情况下我们常用的是 .gz 和 .bz2文件

 

你可能感兴趣的:(Linux)