以前在做Linux下Android系统项目开发的时候,由于Android系统是非常庞大的,可能是10几个G,供应商给了如下的N多个压缩包给了我,格式大概是下面这样子:
xxx.gz.aa,xxx.gz.ab,xxx.gz.ac等等
接下来,为了更好说明如何解压缩上面这种格式的文件,假设在当前目录下,存在一个Android_MTK的目录,将目录打包压缩并分割成多个1M的文件,可以用下面的方法:
tar cjf - Android_MTK | split -b 1m - Android_MTK.tar.gz
完成后会产生下列文件:
Android_MTK.tar.gz2.aa Android_MTK.tar.gz2.ab Android_MTK.tar.gz2.ac ...
如果要解压该包可以用以下指令:
cat Android_MTK.tar.gz2.a* | tar xj
再举一个例子,要将文件test.pdf分包压缩成500字节的文件:
tar czf - test.pdf | split -b 500 - test.tar.g
我们看到以上都有split这个指令,split命令格式:
split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
最常用的选项,都在这里了:
- -b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
- -<行数>或-l<行数>:指定每多少行要拆分成一个文件。
- 输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
- -a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。