(干货)Linux中常见的压缩文件有两种命令
一、windows下最常见的压缩文件有两种:*.zip和*.rap
而Linux下却有好多,让人混淆:*.tar、*.tar.gz、*.tgz、*.gz、*.Z、*.bz2
二、基础概念
1.打包:将一堆文件或目录哪些的弄成一个总的文件。
2.压缩:将一个大的文件经过某种压缩算法弄成一个小文件。
为何要分辨这两个概念呢?由于Linux中的好多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先须要打个包,之后压缩。
三、tar命令
1.单独使用(mantar可以查看)
常用参数:-c形成新的包
-r像压缩归档文件末尾追加文件
-u更新原压缩包中的文件,仅将较新的文件附加到存档中
-t列举存档中文件的目录
-x解包
-f指定包的文件名,用在最后一个参数
-v详尽显示处理的文件
基本用法:#tar-cfall.tar*.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示形成新的包linux的压缩命令,-f指定包的文件名。
#tar-rfall.tar*.gif
这条命令是将所有.gif的文件降低到all.tar的包上面去。-r是表示降低文件的意思。
#tar-ufall.tarlogo.gif
这条命令是更新原先tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
#tar-tfall.tar
这条命令是列举all.tar包中所有文件,-t是列举文件的意思
#tar-xfall.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
2.为了便捷用户在打包解包的同时压缩或解压文件,tar命令提供了一种特殊的功能,就是可以在打包解包的同时调用其他的压缩程序,例如:gzip,bzip2等。
扩充用法:1)tar调用gzip
gzip是GNU组织开发的一个压缩程序linux命令详解词典,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下边来举例说明一下:
#tar-czfall.tar.gz*.jpg
这条命令是将所有.jpg的文件打成一个tar包,但是将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
#tar-xzfall.tar.gz
这条命令是将前面形成的包解开。
2)tar调用bzip2
bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下边来举例说明一下:
#tar-cjfall.tar.bz2*.jpg
这条命令是将所有.jpg的文件打成一个tar包,但是将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
#tar-xjfall.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.(mangzip)可以看见详尽的内容,这儿简单列举常用的参数:
-c将结果讲到标准输出,原文件保持不变
-d解压缩
-l列举每位压缩文件的如下项目:
compressedsize:压缩文件的宽度
uncompressedsize:压缩前文件的宽度
ratio:压缩率(假如未知则为0.0%)
uncompressed_name:压缩前的文件名
对于非gzip格式的文件,压缩前文件宽度显示为-1linux的压缩命令linux命令详解词典,比如由compress压缩的.Z文件。可用下述命令得到这些文件压缩前的宽度:
zcatfile.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对每一个压缩和解压的文件,显示文件名和压缩比。