记一下
有些shell zip命令不太好使,推荐使用tar
晚上刚编译了一个系统版本,准备传给同事测试,打开 百度盘 刚准备上传,NND,百度免费用户限制了最大 1G 的文件大小,可是我们的安装包有近 3G 的容量,如果要上传需要购买会员,只能压缩分卷了,但 Mac 下好用的压缩软件不多,幸好我们可以用命令行。
使用 zip 命令压缩文件
使用 zip 命令压缩文件,并结合 split 命令来分卷:
zip - largefile | split -b 500k
上述命令将文件 largefile 压缩成 zip 包并分卷成不超过 500k 的文件,分解后文件名默认是 x* ,后缀为 2 位 a-z 字母,如 aa、ab。
要合并已分解的文件,可使用cat命令恢复成 zip 文件后使用 unzip 或其它主流解压软件解压:
cat x* > file.zip
使用 tar 命令压缩文件
我们也可以使用 tar 命令来创建压缩文件,如:
tar czvf - largefile | split -b 500k
同样,使用 tar 解压:
cat x* | tar xzvf -
命名规则
如需指定文件前缀或后缀长度可使用 split 命令参数指定,如:
zip - largefile | split -b 500k -a 3 - file.zip
上述命令指定了 file.zip 为文件名,后缀使用 3 位 a-z 字母。
另外,如果将分解后文件的后缀改为 .zip.001 、 .zip.002 等,即可使用主流解压工具直接解压(如 Mac 上常用的 The Unarchiver )。
Windows 端解压
想到同事使用的是 Windows ,并且为了尽量降低沟通成本,我们可以下载免费的 7-Zip 工具(官网在这),并编写一个 bat 来合并分卷并解压,脚本如下:
copy /B file.zip.001 + file.zip.002 + file.zip.003 + file.zip.004 file.zip
7z x file.zip
del file.zip
第一行将分卷合并,第二行调用 7-Zip 工具解压合并后的文件,第三行删除压缩文件。
将文件保存为 点我解压.bat ,和分卷文件以及下载的 7-Zip 工具 7z.exe 放在同一个目录下。
这样,在 Windows 上下载所有文件后,直接双击 点我解压.bat 即可解压出源文件。当然,如果他的系统安装了主流的压缩软件,如 WinRAR 等,则直接双击任何一个分卷文件即可解压。