linux 压缩

(1)tar  只归档,不压缩。

  打包:  tar -cvf name.tar path  (path为shell执行路径下的目录)

  解包:  tar -xvf name.tar (解压至当前shell执行目录下)

     tar -xvf name.tar -C /path (/path 解压至其它路径)

(2)tar.gz  tgz   (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理)
            Linux下使用非常普遍的一种压缩方式,兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率)
         其实这是对(1)的tar包进行gzip算法的压缩.

  打包压缩:  tar -zcvf name.tgz path (path为shell执行路径下的目录)

  释放解压:  tar -zxvf name.tar (解压至当前shell执行目录下)

              tar -zxvf name.tar -C /path (/path 解压至其它路径)

(3)tar.bz  Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。但同时在压缩,解压的过程却是非常耗费CPU时间。

  打包压缩:  tar -jcvf name.tar.bz path (path为shell执行路径下的目录)

  释放解压:  tar -jxvf name.tar.bz (解压至当前shell执行目录下)
         tar -jxvf name.tar.bz -C /path (/path 解压至其它路径)

(4) tar.bz2  较tar.bz有着更快速的效率。所使用的命令与(3)相同,不再赘述。

(5) .gz

  压缩:  gzip-d name.gz path

  解压:  gunzip name.gz

(6) .Z

  压缩:  compress files

  解压:  uncompress name.Z

(7) tar.Z

  压缩:  tar -Zcvf name.tar.Z path

  解压:  tar -Zxvf name.tar.Z

(8) .zip

  压缩:  zip -r name.zip path (path为目录)

  解压:  zip name.zip

(9) .rar

  压缩:  rar -a name.rar path

  解压:  rar -x name.rar

示例:一个3.0G的lmdb格式文件

tar  3.0G

tar.bz  2.8G

tar.bz2  2.8G

tgz  2.9G

zip  2.9G

附加:

打包压缩选项

“–exclude=’PATTERN’”:打包时,过滤掉指定文件。“PATTERN”是一个通配符模式表达式。可以有多个“–exclude”选项。
“c”:表示打包。
“a”:根据打包压缩后文件名的后缀来确定压缩算法,如果不能找到相应的压缩算法,那么就不压缩,即只打包而已。具体见“三、其他”。
“v”:打印过程中的日志信息。
“f”:指定打包压缩后文件名,比如有“test.tar.gz,test.tar.xz,test.tgz,test.tar”。
“待打包压缩目录或者一般文件”:可对一个目录进行打包压缩,也可对一个一般文件进行打包压缩。

解压缩解包选项

“–exclude=’PATTERN’”:解包时,过滤掉指定文件。“PATTERN”是一个通配符模式表达式。可以有多个“–exclude”选项。
“x”:表示解包。
“a”:根据打包压缩后文件名的后缀来确定解压缩算法。
“v”:打印过程中的日志信息。
“f”:指定打包压缩后文件名,比如“test.tar.gz,test.tar.xz,test.tgz,test.tar”。

tar命令支持很多压缩算法,比如“gzip,bzip2,lzip,lzma,lzop,xz和compress”等。在打包过程中,在对目录或者一般文件打包得到一个打包文件后,可以选择某个上述压缩算法对该打包文件进行压缩,即先打包再压缩;在解包过程中,完全是个逆过程,即先解压缩再解包。
为了省去需要明确指定使用的压缩算法的麻烦,tar命令提供一个“-a”选项,通过启用该选项,tar命令可以根据“打包压缩后文件名”中的后缀来确定需要使用的压缩算法。
后缀跟压缩算法的映射见表1。

只打包不压缩:tar -cavf tmp.tar tmp。
打包gzip压缩:tar -cavf tmp.tar.gz tmp。
打包xz压缩:tar -cavf tmp.tar.xz tmp。
打包gzip压缩,过滤掉以“txt”结尾的文件:tar --exclude='*.txt' -cavf tmp.tar.gz tmp。
解压解包:tar -xavf tmp.tar.xz。
解压解包:tar -xavf tmp.tar.gz。
解包:tar -xavf tmp.tar。
解压解包,过滤掉“bin”目录文件:tar --exclude='bin' -xavf tmp.tar.gz。

参考 https://dslztx.github.io/blog/2016/10/28/tar%E5%91%BD%E4%BB%A4/,感谢作者。

原文地址:https://www.cnblogs.com/yangwithtao/p/7278334.html