Linux文件打包与压缩


在Linux下支持的压缩命令非常多,常见的压缩文件的拓展名有*.gz,*.bz2,*.tar.gz,*.tar.bz2等。压缩解压是很常用的功能,但命令参数都稍有点复杂,因此对常用的几个用法做一个简单的总结。

 

1.gzip

gzip的全称是是GNUzip,是一个非常优秀文件压缩程序。除了*.gz文件外,gzip还可以用来解压*.zip,*.Z等格式的压缩文件。而且*.gz文件也可以用winrar解压,用起来非常方便。下面是一些常用的gzip参数:

 

gzip -option filename

-c将压缩的结果显示到屏幕上,原文件不变,可以通过数据流重定向将结果写到文件中去。

-d解压缩

- f强制覆盖旧文件

-l列出压缩包内储存的原始文件的信息,解压后的名字、压缩率等。注意加上-l后即便有-d参数也不会解压缩

-r递归压缩目录下的所有文件

-t测试压缩文件的完整性

-v显示压缩比率

-1~9压缩等级,数字越大,压得越小,速度越慢,默认等级为6

 

gunzip -option filename

解压缩命令,相当于gzip-d。所能使用的参数和gzip相同,当然少了-d,也不能设等级。

 

zcat -filename

查看压缩文件的内容

 

2.bzip2

bzip2是一个基于Burrows-Wheeler变换的无损压缩软件,它的压缩比率比gzip更高,不过相应的速度也会更慢一点。bzip2的用法和gzip基本相同,上面提到的参数基本都可以沿用(除了没有-r,没有-l,大写的-L表示License)。下面是bzip2多出的一些常用参数:

 

bzip2 -option filename

-k保留原有文件

-s使用较少的内存

 

bunzip2 -option filename

解压缩命令,相当于bzip2-d。

 

bzcat -filename

查看压缩文件的内容

 

bzip2 recover

从损坏的*.bzip2文件中恢复数据

 

3.tar

上面提到的命令都只能针对单个文件进行压缩。虽然可以加上-r参数来压缩目录,但只是对目录下的各个文件单独压缩,最终仍是目录。要想把一个文件夹压缩成一个压缩包。那么就要使用tar命令。tar的作用是将多个文件或目录进行打包。tar命令很多,下面是一些常用的。


 

tar -option filename

- c创建新的打包文件

- d将文件和tar包里的文件进行diff

- t查看打包文件内含有哪些文件

- x解打包或解压缩

- j使用bzip2进行压缩/解压

- z使用gzip进行压缩/解压

- r将新的文件添加到tar包中去

- A将已有的tar包添加到另一个tar包中去

- k不覆盖系统上已有的文件

- v显示正在处理的文件名

- p保留文件原有的权限与属性

- f接要被处理的文件名

-C解压的时候指定目录

--exclude=filename打包的时候不包含filename

 

通常的使用可以总结为以下几种模式:

查询: tar -j(z)tvf filname

压缩: tar -j(z)cvf 新建的文件名 要压缩的文件名

解压: tar -j(z)xvf 要解压的文件名 -C 解压的目录

 

ps:以上要注意tar不会自动生成文件的后缀名,所以新建的文件名需要自己加上后缀方便识别。还有

-f参数一定要放在最后和文件名相连,也可以单独独立出来防止出错。


相关内容