zip分割
最近在处理数据时,遇到了由于文件过大,上传到服务器不稳定,上传时间长的问题,因此在本地先进行了数据的拆分,然后再上传,进行数据合并。在这里记录一下。
- 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等解压命令;
cat x* | unzip -
cat x* | tar xzvf -