【linux】使用zip指令对文件进行直接压缩、分卷压缩和解压

问题描述:

由于上传文件大小的限制,需要将文件进行分卷压缩,常用的有zip格式、rar格式与tar.gz格式,这三种格式方便我们与不同平台的使用者进行工作的交接。由于zip压缩文件是平台通用的,所以本篇博文将针对 zip指令 压缩文件和解压文件进行分享。

解决方法:

1、无指定输出大小时直接压缩

假设在~/路径下有个需要压缩的文件夹名称为Test,现在需要将Test文件夹压缩成Test.zip

cd Test
zip -r Test.zip *

备注:其中-r表示递归压缩目录下的文件,Test.zip为要压缩成的压缩包名称(根据实际情况进行更改),*表示将当前目录下所有的东西都加入到名称为Test.zip的压缩包中,可以将*任意替换成想要压缩的文件夹(当前的 * 等价于 ~/Test ,差别在于最后压缩包中嵌套的文件夹会少几层)

运行结果:adding: 2019080616594046.jpg (deflated 1%) 已成功压缩

2、有指定输出大小时分卷压缩

假设~/路径下有文件夹Imgs,文件夹大小为41.1MB,现在需要将Imgs文件夹进行分卷压缩,最后每卷以15MB进行输出。

cd Imgs
zip -r Imgs.zip *
zip -s 15m Imgs.zip --out ImgsNew.zip

备注:15m可以任意设置成自己需要的压缩包大小尺寸,博主这里定义为15MB的输出,--out前是需要进行分卷的zip压缩包,--out后是分卷压缩后的结果命名,记得用空格隔开。

运行结果:已成功将Imgs.zip 压缩成ImgsNew.z01、ImgsNew.z02、ImgsNew.zip三个压缩包 

3、解压压缩包 

对于直接压缩得到的压缩包,使用unzip 压缩包名称.zip

对于分卷压缩得到的压缩包,以ImgsNew.z01、ImgsNew.z02、ImgsNew.zip三个压缩包为例:

cd Imgs
zip -s 0 ImgsNew.zip --out ImgsAll.zip
unzip ImgsAll.zip

运行结果:成功得到合并后的压缩包ImgsAll.zip,解压后得到Imgs文件夹(大小为41.1MB,与原文件夹一致)

发布了22 篇原创文章 · 获赞 3 · 访问量 1886

猜你喜欢

转载自blog.csdn.net/weixin_44322399/article/details/104062194