myfreax
zip

Linux zip 命令分卷压缩

在本教程中,我们将向您展示如何在Linux使用zip命令创建拆分/分割zip文件

3 min read
By myfreax
Linux zip 命令分卷压缩
Linux zip 命令分卷压缩

Zip是使用最广泛的存档文件格式,它支持无损数据压缩。Zip文件是包含一个或多个文件或目录的数据压缩容器。

已压缩文件占用较少的磁盘空间可以比未压缩文件更快地从一台机器传输到另一台机器。

zip文件适用于所有操作系统,可以在Windows,macOS和Linux中解压缩Zip文件。在本教程中,我们将向您展示如何在Linux使用zip命令创建拆分/分割zip文件。

安装 zip

要检查您的系统上是否安装zip,请运行命令zip --version,命令将会打印zip的版本号。

如果您的系统上未安装zip,终端将会提示你bash: command not found: zip。可以使用发行版的软件包管理器进行安装。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint,可以运行sudo apt update && sudo apt install zip安装zip。

如果你的计算机运行的是基于Redhat的Linux发行版,例如Fedora,CentOS。可以运行sudo yum install zip安装zip。

sudo apt install zip
sudo yum install zip

zip 命令选项

zip命令语法形式是zip OPTIONS ARCHIVE_NAME FILESARCHIVE_NAME 是存档的名称,FILES可以是一个或者多个文件与目录。

要在指定的目录中创建Zip文件,用户需要对该目录具有写入权限,对要压缩的文件具读取权限。

ZIP文件不支持Linux权限信息,zip文件解压缩后的文件并不保留原始权限的信息,解压缩的文件归运行unzip命令的用户所有。

如果你需要保留文件权限信息,使用tar命令创建存档文件。

zip 命令压缩方法和级别

Zip的默认压缩方法是deflate。如果zip命令确定无法压缩文件,zip命令则使用store方法将文件添加到zip存档文件,并且不对文件进行压缩。

在大多数Linux发行版中,zip命令还支持bzip2压缩方法。要指定压缩方法,请使用zip命令的-Z选项。

zip命令允许您使用前缀-和0到9的数字指定压缩级别。默认压缩级别为-6。在指定的压缩级别为-0,所有文件都不会被压缩,而仅仅是添加到存档文件。

当压缩级别指定为-9时,将强制zip命令对所有文件使用最佳压缩。压缩级别越高,zip进程占用的CPU越多,并且需要更多时间才能完成。

zip -r -Z bzip2 archivename.zip directory_name
zip -9 -r archivename.zip directory_name
...
adding: sub_dir/ (stored 0%)
adding: sub_dir/file1 (bzipped 52%)
adding: sub_dir/file2 (bzipped 79%)

创建分卷压缩/多个拆分zip文件

想象一下,您希望将Zip存档存储在文件托管服务上,文件上传大小限制为1GB,但你的Zip文件为5GB。

此时,您可以使用-s选项后跟指定的文件大小创建多个Zip文件。单位可以是k千字节,m兆字节,g千兆字节或t万兆字节。

例如命令zip -s 1g -r archivename.zip directory_name将会在zip文件达到1GB后,创建新的zip文件继续压缩。

zip -s 1g -r archivename.zip directory_name
archivename.zip
archivename.z01
archivename.z02
archivename.z03
archivename.z04

结论

在Linux,您可以使用zip命令创建Zip存档。要在Linux解压缩ZIP存档,可以使用unzip命令。如果您想了解Zip的更多信息,请访问Zip Man页面。