Linux下的tar命令和gzip命令的区别与联系


Linux下的tar命令和gzip命令的区别与联系

qq_38131333 2018-05-27 18:12:38 13029 收藏 31
分类专栏: linux 文章标签: tar命令 gzip命令
版权

linux
专栏收录该内容
6 篇文章0 订阅
订阅专栏
一、windows下最常见的压缩文件有两种:* .zip 和 * .rap

而Linux下却有很多,让人混淆:* .tar 、* .tar.gz 、* .tgz 、* .gz 、* .Z 、* .bz2

二、基础概念

1. 打包:将一堆文件或目录什么的变成一个总的文件。

2. 压缩:将一个大的文件经过某种压缩算法变成一个小文件。

为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。

三、tar命令

1. 单独使用(man tar 可以查看)

常用参数:-c 产生新的包

-r 像压缩归档文件末尾追加文件

-u 更新原压缩包中的文件,仅将较新的文件附加到存档中

-t 列出存档中文件的目录

-x 解包

-f 指定包的文件名,用在最后一个参数

-v 详细显示处理的文件

基本用法:# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar

这条命令是解出all.tar包中所有文件,-x是解开的意思

2. 为了方便用户在打包解包的同时压缩或解压文件,tar命令提供了一种特殊的功能,就是可以在打包解包的同时调用其他的压缩程序,比如:gzip,bzip2等。

扩展用法:1) tar调用gzip

gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。 tar中使用-z这个参数来调用gzip。下面来举例说明一下:

# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
2) tar调用bzip2
bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2

这条命令是将上面产生的包解开

四、gzip命令

1. (1)缺省情况下, gzip 将原始文件名和时间信息保存在压缩后的文件中。

(2)gunzip 的功能 与 gzip -d 功能一样。gunzip 将命令行中以.gz, -gz, .z, -z, _z 或 .Z结尾并具有正确标志头的文件
解压缩,并以去掉扩展名的解压缩文件替换原文件。 gunzip 也能识别扩展名为 .tgz 和 .taz 的文件,并将其分别当作 .tar.gz 和 .tar.Z 的缩写。gunzip 目前能够解压由 gzip, zip, compress, compress -H 以及 pack产生的文件。 对输入格式的检测是自动的。

2.(man gzip)可以看到详细的内容,这里简单列出常用的参数:

-c 将结果写到标准输出,原文件保持不变

-d 解压缩

-l 列出每个压缩文件的如下项目:

compressed size:压缩文件的长度

uncompressed size:压缩前文件的长度

ratio:压缩率(如果未知则为0.0%)

uncompressed_name:压缩前的文件名

对于非gzip 格式的文件,压缩前文件长度显示为 -1,例如由compress压缩的 .Z文件。可用下列命令得到这种文件压缩前的长度:

zcat file.Z | wc -c (zcat 的功能与 gunzip -c. 相同。)

如果同时指定了 --verbose选项,下列项目也被列出:

method:压缩方式

crc:未压缩数据的32位CRC校验码

date & time:压缩前文件的时间信息

目前支持的压缩方式有deflate、compress、lzh(SCO下的compress-H)以及pack等方式。对于非gzip格式的文件,crc校验码显示为ffffffff。

-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。

   -t 测试,检查压缩文件是否完整。

   -v 对每一个压缩和解压的文件,显示文件名和压缩比。


————————————————
版权声明:本文为CSDN博主「qq_38131333」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38131333/article/details/80468326

相关