问题描述:
由于上传文件大小的限制,需要将文件进行分卷压缩,常用的有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,与原文件夹一致)