查看原文
其他

Linux下tar命令结合split实现的分包和并包

杨源鑫 嵌入式云IOT技术圈 2021-01-31

    以前在做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 这样的格式依次编号。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存