LinuxShell下分卷压缩与解压

1. 简介

由于网络传输有时会限制单个文件大小,所以对于大文件的传输我们需要将其分卷压缩成多个小的压缩包。在 LinuxShell 下可以使用 split & cat(系统自带)命令或直接使用压缩软件 rarzip7z(需自行安装)命令来实现分卷压缩和解压。

2. rar/7z 命令

2.1 分卷压缩

1
rar/7z a -v<size>[b,k,m,g,...] <压缩卷名> <被压缩文件/文件夹名>

其中,参数 a 表示添加卷,<size> 指定每卷压缩包最大不超过的大小;<size> 后可以跟数值单位 b,k,m,g,...,依次为字节、千字节、兆字节、吉字节……(不指定数值单位时默认为字节)。

2.2 解压

rar/7z 命令解压很方便,只需对任意一个压缩卷执行解压即可恢复原文件:

1
rar/7z x <压缩卷名>

3. zip

3.1 分卷压缩

zip 分卷压缩与 rar/7z 有些许不同:

1
zip -s<size>[b,k,m,g,...] -r <压缩卷名> <被压缩文件/文件夹名>

其中,参数 -r 表示递归处理文件夹下的文件(如果只是压缩单个文件可以省略)。

3.2 解压

zip 分卷压缩后会形成若干个 .zxx 文件和一个 .zip 文件,解压时需要根据该 .zip 文件来合并其他所有分卷为单个分卷,然后在利用 unzip 解压即可恢复原文件:

1
2
zip -s0 <压缩卷名>.zip --out <合并压缩卷名>
unzip <合并压缩卷名>

4. split & cat

split 命令使用来分割文件的强大工具,它不仅可以用来分割压缩包,也能用来分割一般的文件;cat 命令用来合并 split 分割的文件。

4.1 分割压缩包

1
split -b<size>[b,k,m,g,...] <压缩卷名>

split 分割后形成的小文件自动命名为 x00 x01 x02 …… xaa xab xac ……

4.2 合并压缩包

split 分割形成的 x* 小文件合并为原来的压缩卷:

1
cat x* > <压缩卷名>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!