zip分割

发布时间 2023-12-04 21:53:35作者: 海尚书

最近在处理数据时,遇到了由于文件过大,上传到服务器不稳定,上传时间长的问题,因此在本地先进行了数据的拆分,然后再上传,进行数据合并。在这里记录一下。

  1. zip或者tar命令压缩,并结合split命令分卷;
zip - <file> | split -b <max_size>
tar czvf - <file> | split -b <max_size>

上述命令将名为file的文件压缩成 zip 包或者tar包并分成不超过max_size的文件,分解后文件名后缀为 2 位的a-z 字母,如 aa、ab、ac等。

在这里的split命令如下:

split [-a] [-b] [-C] [-l] [要分割的文件名] [分割后的文件名前缀] 
–version 显示版本信息 
– 或者-l,指定每多少行切割一次,用于文本文件分割 
-b 指定切割文件大小,单位 m 或 k 
-C 与-b类似,但尽量维持每行完整性 
-d 使用数字而不是字母作为后缀名 
-a 指定后缀名的长度,默认为2位 

例如:

split -b 1024m file.zip file.zip. 

这个命令就是将file.zip这个文件分解成最大1024M的以file.zip.为命名的文件,后缀为2 位的a-z 字母,如 aa、ab、ac等。

2. cat合并多个分卷的文件,命令如下:

cat <files_name_1> <files_name_2> <files_name_3> > <files_name>

如上命令是将files_name_1、files_name_2、files_name_3合并成files_name;

cat x* > files.zip

然后再使用unzip或者tar等解压命令;