日期:2014-05-16  浏览次数:20572 次

Linux命令-压缩与解压缩

?

在Linux系统中,常常可以看到各种后缀名,如tar、gz、bz2、tgz等等,这些后缀名都是什么意思,应该用何种方式来进行解压,都是一个不小的挑战。对已常见的压缩格式,各位同学应该都能使用,本文只是作为备忘录,最近被这些后缀名搞得有点头大,每次解压或者压缩都要去搜下,不如自己做个总结记下来,以供自己和后来人使用。

压缩功能有明显的好处,在*nux系统中,各种文件下载,网络传输都是使用压缩格式的方法。最重要的是使用压缩具有明显的一下特点:减少存储空间、减小网络传输时间。这些特点足够作为理由来使用压缩特性。所以从网络上下载下来分发包,都是经过打包和压缩的;重点是压缩格式繁多,而*nix的开源特性也使得其支持各种压缩格式,所以本文的有些压缩格式在你自己的系统里面未必是支持的,有可能需要安装额外的安装包。

?

1tar

tar命令既是文件格式,又是Linux系统下的文件打包工具,注意tar命令是打包工具,所以该命令没有压缩与解压缩功能。wiki参见这里。

打包:tar cf log.tar file.log

解包:tar xf file.tar

其中参数c=createf=file,一般会添加个v参数,v=verbose

tar命令也提供了压缩选型,-a=auto-compress-j=bzip2 -J=xz --lzip --lzma --lzop -z=gzip -Z=compress

不过如果自己用的话,一般是用来打包用,如果对命令熟悉的话,可以结合这些压缩功能

2gzDEFLATE算法,是LZ77Huffman Coding算法的结合,作为LZW的替代者。算法细节见http://en.wikipedia.org/wiki/Gzip

该算法压缩率还是不错的,特别是对于log来说

解压:gunzip file.log.gz 或者 gzip -d file.log.gz

压缩:gzip file.log

3tar.gztgz