tar命令
tar是打包,即把好多东西放在一个大文件里面,之后再压缩;当然也可以解包
tar的几个参数说明:
-c 创建一个新的包
-x 将包里的文件还原出来
-t 显示包内文件的列表
-f 指定要处理的包名,不管是打包还是拆包
-v 显示打包或拆包的进度
-z 打包拆包时一并使用gzip压缩软件
-j 打包拆包时一并使用bzip2压缩软件
-C 解压并拆包时,指定解压的路径
常用压缩手段:gzip bzip2 xz
gzip和bzip2可以和tar一起使用,不再赘述,只说xz
xz的压缩率比7z还高,相应的压缩时间比7z要长。我下linux-2.4.20的kernel源码,人家是用xz压缩的,结果145M的东西直接压成了20.4M,我自己试了一下,默认6级压缩率,压成了22.5M,当然比较起来特别慢,设置为9级的时候是压缩为21.5M,差别也不是很大嘛。
从优快云上找到一篇博文,也不清楚是谁的原创,只能致敬一下了,参考:https://blog.youkuaiyun.com/u013439115/article/details/77935602
他说的内容主要如下:
xz -z filename 压缩
如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.
xz -d filename 解压
同样使用 -k 参数来保留被解压缩的文件。
要注意的是这个k参数,执行完xz -d filename之后原先的.tar.xz就没了,只有.tar,千万注意。
三个整套的压缩解压处理方案
1. tar.xz格式
压缩 | 解压 | | |
tar -cvf filename.tar SrcFilesOrDir | xz -dk filename.tar.xz | | |
xz -zk filename.tar | tar -xvf filename.tar | \|/ |
经试验,解压.tar.xz可以直接tar xf filename.tar.xz,xf前面没有横线,上面倒是多余了
2. tar.bz2格式
tar -jxvf filename.bz2 要压缩的多个文件或目录
tar -jxvf filename.bz2 -C destPath
3. tar.gz格式(也作.tgz)
tar -zcvf filename.tgz 要压缩的多个文件或目录
tar -zxvf filename.tgz -C destPath
还有,这个.tar.gz格式的压缩包也可以直接tar xf filename.tar.gz,xf前面没有横线