如何在Linux使用zip命令压缩文件和目录

嵌入式技术

1372人已加入

描述

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

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

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

安装 zip

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

如果您的系统上未安装unzip,终端将会提示你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命令压缩一个或多个文件,请在zip命令指定存档文件的名称,然后是指定要添加到zip存档的文件。文件使用空格分隔。

如果指定的名称省略扩展名.zip,zip命令将会自动添加扩展名到存档名称。例如命令zip archivename filename将创建一个与之相同名称的存档archivename.zip

通常,你都是压缩目录及其子目录的所有文件,但zip命令并不会递归压缩所有文件与目录,如果需要递归压缩文件与目录,请使用unzip命令的-r选项。

默认情况下,zip命令打印添加到存档的文件名称和压缩方法。要禁止zip命令打印这些信息,可以使用zip命令的-q选项。

zip archivename.zip filename1 filename2 filename3
zip -q archivename.zip filename1 filename2 filename3
zip -r archivename.zip directory_name
adding: filename1 (deflated 63%)
adding: filename2 (stored 0%)
adding: filename3 (deflated 38%)

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文件包含敏感信息,可以使用zip命令的-e选项对其进行加密。系统将提示您输入密码。

zip -e  archivename.zip directory_name
Enter password:
Verify password:

创建多个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

zip 命令隐藏文件

zip命令允许你使用*通配符添加文件到zip存档文件,但有一点值的注意的在使用通配符时并不会包含隐藏文件。

如果你需要添加文件和隐藏文件,请使用通配符匹配隐藏文件,例如命令zip archivename .* *

.*表示匹配隐藏文件,*是普通文件。命令将会创建archivename.zip存档文件。

zip archivename .* *

结论

在Linux,您可以使用zip命令创建Zip存档。要在Linux解压缩ZIP存档,可以使用unzip命令。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分