Linux 中的压缩和解压缩命令
Zip 是一种流行的跨平台命令,用于压缩和归档数据。压缩通过缩小数据大小来节省空间,而归档通过将多个文件或目录组合成一个文件来使数据传输变得更容易。考虑一下,如果我们必须通过互联网传输 5 个文件,每个文件大小为 50 MB;一个接一个地传输所有文件可能需要很长时间。压缩文件以将大小减少最多 25MB,然后将所有文件归档到一个文件中,这样传输文件的速度将比未压缩文件时快得多。 Zip 是最广泛使用的用于归档和压缩文件的实用程序,而 unzip 用于提取和解压缩压缩文件。
在本文中,我们将了解 Linux 中的 zip 和 unzip 命令,以及它们的命令行选项和示例。
先决条件
Ubuntu 或 Debian 系统
安装了压缩和解压缩实用程序
注意:本文中提到的命令已在 Ubuntu 20.04 LTS (Focal Fossa) 上进行了测试。相同的命令也适用于 Debian 发行版。
安装 Zip 和解压
Ubuntu系统默认安装zip和unzip包。如果您的系统中缺少这些,您可以轻松安装它们。使用 Ctrl+Alt+T 键盘启动终端。然后要安装 zip,请在终端中发出以下命令:
要安装 unzip,请在终端中发出以下命令:
在某些情况下,您可能需要压缩文件:
为了节省存储空间,因为压缩会压缩文件大小
通过电子邮件传输大文件
以更快的速度上传或下载文件
为了节省带宽
Linux 中的 ZIP 命令
要创建 zip 文件,您需要提供压缩存档的名称以及需要包含在 zip 中的文件。
压缩单个文件
压缩名为 testfile.txt 的单个文件; 到名为 test.zip 的 zip 文件,命令为:
上面的命令将压缩当前目录中的指定文件,同时保留原始文件。
要确认 zip 文件是否已创建,请在终端中发出以下命令:
压缩多个文件
您还可以使用 zip 命令压缩多个文件。让我们创建一些名为 testfile1.txt、testfile2.txt、testfile3 的文件。 txt 和 testfile4.txt 在终端中使用以下命令:
现在,要将这些文件压缩到一个名为files.zip的文件中,请在终端中发出以下命令:
您还可以使用通配符指定具有相同扩展名的多个文件。例如,要将所有以 .txt 扩展名结尾的文件压缩到名为 files1.zip 的 zip 文件中,请在终端中发出以下命令:
将文件压缩到不同的目录
如果需要将文件压缩到当前目录以外的某个目录,请使用以下语法:
例如,要将 testfile.txt 文件压缩到名为 test.zip 的 Documents/docs/ 目录中,命令是:
将文件添加到现有 zip
您还可以将文件添加到预先存在的 zip 文件中。使用以下语法来执行此操作:
假设您有一个 zip 文件 (files1.zip),并且您想再添加一个文件 (testfile4.txt<) 在本例中,命令为:
从 zip 文件中删除文件
同样,您也可以从现有的 zip 文件中删除文件。使用以下语法来执行此操作:
假设您有一个 zip 文件 (files1.zip),并且您想要删除一个文件 (testfile1.txt ) ) 在本例中,命令将是:
以安静模式压缩文件
如果您不想显示 zip 命令的输出,请在 zip 命令中使用 -q(安静)选项,如下所示:
例如,在压缩 testfile.txt 时,您可以使用以下命令抑制输出:
在下面的屏幕截图中,您可以看到尚未在终端上显示的 zip 命令输出。
压缩后删除原文件
默认情况下,zip 保留原始文件和压缩文件。但是,通过使用 zip 命令的-m选项,您可以在创建压缩文件后删除原始文件。
例如,以下命令将在创建压缩文件test.zip后删除testfile.txt。
邮编目录
要压缩 Linux 系统中的目录,请在 zip 命令中使用 -r(递归)选项。 -r 选项将以递归方式压缩目录,即包括子目录的内容。
例如,要将Documents目录递归压缩到test.zip文件,命令为:
设置压缩级别
您还可以设置应用于正在压缩的文件的压缩级别。压缩级别范围从 0 到 9,其中 6 是默认值,0 是最低值,9 是最高压缩值。
例如,要使用最高压缩值将所有文本文件压缩到 files1.zip,命令为:
同样,要将所有文本文件压缩到 files2.zip 使用最低压缩值 -0,命令为:
以下是创建 zip 文件后 ls 命令的输出。如果我们比较两个 zip 文件的大小,您可以看到使用压缩级别 9 压缩的 files1.zip 的大小比使用压缩级别 0 压缩的 files2.zip 的大小要小。
创建受密码保护的 zip 文件
您还可以使用 zip 命令的-e选项来创建受密码保护的 zip 文件,如下所示:
例如,以下命令将压缩 files3.zip 中的所有文本文件,然后要求输入密码。设置任意密码并按 Enter。然后重新输入密码并按 Enter 键以验证该密码。
使用 zipcloak 向 zip 文件添加密码
在前面的示例中,我们创建了一个受密码保护的 zip 文件。但是,如果您创建了 zip 文件但忘记设置密码该怎么办?使用 zipcloak 命令,您可以随时为 zip 文件设置密码。
例如,要为已创建的名为 files.zip 的 zip 文件设置密码,命令为:
系统会要求您输入密码。输入任意密码,然后按Enter。然后重新输入密码并按 Enter 来验证该密码。
使用 zipdetails 命令查看文件详细信息
Zipdetails 命令显示有关压缩文件的详细信息。它显示的信息是关于记录结构而不是压缩数据。要查找有关压缩文件的详细信息,请输入 zipdetails,后跟压缩文件名,如下所示:
例如,要查找有关压缩文件 test.zip 的详细信息,命令为:
在输出中,您将看到有关压缩文件的大量信息。
使用 zipgrep 命令在文件内搜索
zipgrep 命令允许我们在压缩文件内的文件中搜索给定文本,而无需解压它。如果 zip 文件受密码保护,则您必须先输入密码。要搜索 zip 文件内的文本,请使用以下语法:
例如,要搜索 zip 文件 test.zip 中的哪些文件包含单词 gateway,命令为:
输出如下。您可以在测试中看到两个文件iplist.text和iplist。zip包含单词gateway。
要从 zip 文件内的特定文件中搜索文本,您还可以添加它:
例如,以下命令将仅从 zip 文件 test.zip 内的特定文件 iplist 中搜索单词 gateway :
使用zipinfo命令查看信息
Linux 中的 zipinfo 命令列出 zip 文件中包含的文件及其权限、压缩类型、原始大小、日期和时间戳。要查看有关特定 zip 文件的信息,请键入 zipinfo,后跟文件名,如下所示:
以下命令将显示有关 zip 文件files1.zip的信息:
使用 zipsplit 命令分割文件
有时,zip 文件的大小太大,由于大小限制,您无法上传它或将其作为附件发送。使用 zipsplit 命令,您可以将 zip 文件分割成更易于传输的更小的文件。要将 zip 文件拆分为较小的文件,且大小不超过
例如,下面的命令会将 test.zip 分割成较小的文件,大小不超过 104857600 字节 (104 MB)。
使用 zipnote 添加或查看 zip 文件中的注释
使用 zipnote 命令,您可以添加、查看和编辑 zip 文件中的注释。要查看评论,请使用以下命令:
将zip文件替换为您的实际 zip 文件名。
如果没有评论,您将看到以下默认视图:
要添加评论,首先,您需要将 zipnote 的输出重定向到评论文件。使用以下命令来执行此操作:
例如,要向 files1.zip 添加注释,命令为:
现在,使用以下命令编辑评论文件:
对于每个文件,在@(此行上方的注释)行上方添加注释,然后保存并退出文件。我们在评论文件中添加了两条评论,如下面的屏幕截图中突出显示的那样。
现在使用以下命令将注释写入您的 zip 文件:
在我们的例子中,命令是:
现在,您可以通过在终端中发出以下命令来验证注释是否已添加:
查看帮助
要查看有关 zip 命令的帮助,请使用以下命令:
您还可以使用以下命令访问 zip 实用程序手册页:
Linux 中的解压命令
使用 unzip 命令,您可以轻松地从 zip 文件中提取内容。要解压缩文件,请使用以下语法:
解压单个 zip 文件
要解压缩单个 zip 文件(假设为 test.zip),命令为:
将文件解压到不同的目录
您还可以使用 -d 选项将文件解压缩到其他目录而不是当前目录,如下所示:
要将 zip 文件 test.zip 解压缩到 Documents 目录,命令为:
解压多个文件
考虑当前目录中有多个要解压缩的 zip 文件。您可以使用单个命令解压缩所有文件,如下所示:
此命令将解压缩当前目录中的所有 zip 文件。
使用解压缩时抑制输出
与 zip 命令类似,您还可以使用 -q 选项隐藏 unzip 命令的输出,如下所示:
使用解压缩排除文件
如果您想要解压缩 zip 文件但不想解压特定文件,请使用下面的-x选项:
例如,我们有一个 zip filetest.zip,其中包含三个文件。以下命令将解压缩除报告.txt一个文件之外的所有文件:
解压缩受密码保护的 zip 文件
要在没有提示的情况下解压受密码保护的 zip 文件,请使用 -P 选项,后跟该文件的密码:
例如,我们有一个 zip 文件test.zip,该文件受密码“tin”保护。要提取该文件,命令为:
覆盖 zip 文件
如果您将文件解压缩到解压缩文件已存在的位置,系统将提示您:覆盖当前文件、跳过当前文件的解压缩、覆盖所有文件、跳过所有文件的解压缩或重命名文件。
要覆盖所有现有文件而不提示,请使用 -o 选项,如下所示:
列出 zip 的内容
将 -l 选项与 unzip 命令结合使用,您可以列出 zip 文件的内容而不解压它。
示例:
以下是上述命令的输出,其中列出了 zip 文件 test.zip 中包含的文件及其名称、原始文件大小、日期和时间戳。
查看详细信息
为了在不解压 zip 文件的情况下查看详细信息,请使用 -v 选项,如下所示:
示例:
以下是上述命令的输出,其中列出了 test.zip 中包含的文件及其名称、原始文件大小、压缩大小、压缩方法、压缩方式比率、日期和时间戳。
检查存档中的错误
使用 unzip 命令中的 -t 选项,您可以检查 zip 文件是否有效且不包含任何错误。
示例:
上述命令检查 test1.zip 文件中的错误并显示结果。以下输出表明压缩文件中没有错误。
查看帮助
要查看有关 unzip 命令的帮助,请使用以下命令:
您还可以使用以下命令访问 unzip 实用程序手册页:
结论
这就是在 Linux 中掌握 zip 和 unzip 命令所需了解的全部内容。在本文中,我们详细讨论了 Linux 中 zip 和 unzip 命令的使用以及各种命令行选项和示例。