(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/,感谢作者。