1.zip相关
注意这种格式需要安装zip包。
yum install -y zip
将gsgc目录下所有的文件打成一个名为gsgc.zip的包
zip -r gsgc.zip gsgc/*
注意这种格式需要安装unzip包。
yum install -y unzip
解压gsgc.zip中所有的文件
unzip gsgc.zip
2.tar相关
将gsgc目录下所有.exe的文件打成一个名为gsgc.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cf gsgc.tar gsgc/*.exe
增加文件
将gsgc目录下所有.txt的文件增加到gsgc.tar包里面。-r是表示增加文件的意思。
tar -rf gsgc.tar gsgc/*.txt
更新文件
将gsgc目录下updatelog.txt文件更新到gsgc.tar压缩包内,-u是表示更新文件的意思。
tar -uf gsgc.tar gsgc/updatelog.txt
列出包内文件
这条命令是列出gsgc.tar包中所有文件,-t是列出文件的意思
tar -tf gsgc.tar
解压gsgc.tar包中所有文件,-t是解压
tar -xf gsgc.tar
3.tar.gz相关
注意这种格式需要安装gzip包。
yum install -y gzip
将gsgc目录下所有的文件打成一个名为gsgc.tar.gz的包
tar -czvf gsgc.tar.gz gsgc/*
排除
打包gsgc目录的所有文件(但是不包括/gsgc/*.dll)
tar -czvf gsgc.tar.gz --exclude=gsgc/*.dll gsgc/*
列出包内文件
查看压缩包里面的内容
tar -tf gsgc.tar.gz
将gsgc.tar.gz包解压
tar -xzvf gsgc.tar.gz
解压到指定路径
解压gsgc.tar.gz包到/root目录下
tar -xzvf gsgc.tar.gz -C /root
4.tar.bz2相关
注意这种格式需要安装bzip2包。
yum install -y bzip2
将gsgc目录下所有的文件打成一个名为gsgc.tar.bz2的包
tar -cjvf gsgc.tar.bz2 gsgc/*
列出包内文件
查看压缩包里面的内容
tar -tf gsgc.tar.bz2
解压
tar -xjvf gsgc.tar.bz2
5.tar.xz相关
注意这种格式需要安装xz包。
yum install -y xz
将gsgc目录下所有的文件打成一个名为gsgc.tar.xz的包
tar -Jcvf gsgc.tar.xz gsgc/*
解压
tar -Jxvf gsgc.tar.xz
6.压缩率
以下是对于相同文件压缩出来的包大小
du * -sh | sort -hr
218M gsgc.tar
218M gsgc
103M gsgc.zip
103M gsgc.tar.gz
99M gsgc.tar.bz2
82M gsgc.tar.xz
以上实验得出压缩比越高的,耗时越久,压缩包体积越小,相应解压时间也越久,具体根据情况选择压缩类型。
7.技巧
有时候在打包某个目录的时候,例如test目录下、file目录下、所有的*.dll排除打包到压缩包,可以使用以下命令对不需要的目录或文件进行排除,支持通配符。
tar -czvf gsgc.tar.gz --exclude=gsgc/test --exclude=gsgc/file --exclude=gsgc/*.dll gsgc/*
注意:在指定排除目录的时候,目录结尾不能带”/“否则将会排除失败。比如--exclude=gsgc/test如果写成--exclude=gsgc/test/,则打包的时候还是会打包进去。
IT博客站版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux压缩与解压文件及压缩率对比