Linux 中的压缩和解压缩命令Linux 中的压缩和解压缩命令Linux 中的压缩和解压缩命令Linux 中的压缩和解压缩命令
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中的压缩和解压缩命令

发表 admin at 2025年2月28日
类别
  • 未分类
标签

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,请在终端中发出以下命令:

$ sudo apt install zip

要安装 unzip,请在终端中发出以下命令:

$ sudo apt install unzip

在某些情况下,您可能需要压缩文件:

  • 为了节省存储空间,因为压缩会压缩文件大小

  • 通过电子邮件传输大文件

  • 以更快的速度上传或下载文件

  • 为了节省带宽

Linux 中的 ZIP 命令

要创建 zip 文件,您需要提供压缩存档的名称以及需要包含在 zip 中的文件。

$ zip options zip_file file1 file2...

压缩单个文件

压缩名为 testfile.txt 的单个文件; 到名为 test.zip 的 zip 文件,命令为:

$ zip test.zip testfile.txt

上面的命令将压缩当前目录中的指定文件,同时保留原始文件。

要确认 zip 文件是否已创建,请在终端中发出以下命令:

$ ls -l

压缩多个文件

您还可以使用 zip 命令压缩多个文件。让我们创建一些名为 testfile1.txt、testfile2.txt、testfile3 的文件。 txt 和 testfile4.txt 在终端中使用以下命令:

$ sudo touch testfile1.txt testfile2.txt testfile3.txt testfile4.txt

现在,要将这些文件压缩到一个名为files.zip的文件中,请在终端中发出以下命令:

$ zip files.zip testfile1.txt testfile2.txt testfile3.txt testfile4.txt

您还可以使用通配符指定具有相同扩展名的多个文件。例如,要将所有以 .txt 扩展名结尾的文件压缩到名为 files1.zip 的 zip 文件中,请在终端中发出以下命令:

$ zip files1.zip *.txt

将文件压缩到不同的目录

如果需要将文件压缩到当前目录以外的某个目录,请使用以下语法:

$ zip /path/to/directory.zip_file filename

例如,要将 testfile.txt 文件压缩到名为 test.zip 的 Documents/docs/ 目录中,命令是:

$ zip Documents/docs/test.zip testfile.txt

将文件添加到现有 zip

您还可以将文件添加到预先存在的 zip 文件中。使用以下语法来执行此操作:

$ zip -u zip_file filename

假设您有一个 zip 文件 (files1.zip),并且您想再添加一个文件 (testfile4.txt<) 在本例中,命令为:

$ zip -u files1.zip testfile4.txt

从 zip 文件中删除文件

同样,您也可以从现有的 zip 文件中删除文件。使用以下语法来执行此操作:

$ zip -d zip_file filename

假设您有一个 zip 文件 (files1.zip),并且您想要删除一个文件 (testfile1.txt ) ) 在本例中,命令将是:

$ zip -d files1.zip testfile1.txt

以安静模式压缩文件

如果您不想显示 zip 命令的输出,请在 zip 命令中使用 -q(安静)选项,如下所示:

$ zip -q zip_file filename

例如,在压缩 testfile.txt 时,您可以使用以下命令抑制输出:

$ zip -q test.zip testfile.txt

在下面的屏幕截图中,您可以看到尚未在终端上显示的 zip 命令输出。

压缩后删除原文件

默认情况下,zip 保留原始文件和压缩文件。但是,通过使用 zip 命令的-m选项,您可以在创建压缩文件后删除原始文件。

$ zip -m zip_file filename

例如,以下命令将在创建压缩文件test.zip后删除testfile.txt。

$ zip -m test.zip testfile.txt

邮编目录

要压缩 Linux 系统中的目录,请在 zip 命令中使用 -r(递归)选项。 -r 选项将以递归方式压缩目录,即包括子目录的内容。

$ zip -r zip_file directoryname

例如,要将Documents目录递归压缩到test.zip文件,命令为:

$ zip -r test.zip Documents/

设置压缩级别

您还可以设置应用于正在压缩的文件的压缩级别。压缩级别范围从 0 到 9,其中 6 是默认值,0 是最低值,9 是最高压缩值。

例如,要使用最高压缩值将所有文本文件压缩到 files1.zip,命令为:

$ zip -9 files1.zip *.txt

同样,要将所有文本文件压缩到 files2.zip 使用最低压缩值 -0,命令为:

$ zip -0 files2.zip *.txt

以下是创建 zip 文件后 ls 命令的输出。如果我们比较两个 zip 文件的大小,您可以看到使用压缩级别 9 压缩的 files1.zip 的大小比使用压缩级别 0 压缩的 files2.zip 的大小要小。

创建受密码保护的 zip 文件

您还可以使用 zip 命令的-e选项来创建受密码保护的 zip 文件,如下所示:

$ zip -e zip_file filename

例如,以下命令将压缩 files3.zip 中的所有文本文件,然后要求输入密码。设置任意密码并按 Enter。然后重新输入密码并按 Enter 键以验证该密码。

$ zip -e files3.zip *.txt

使用 zipcloak 向 zip 文件添加密码

在前面的示例中,我们创建了一个受密码保护的 zip 文件。但是,如果您创建了 zip 文件但忘记设置密码该怎么办?使用 zipcloak 命令,您可以随时为 zip 文件设置密码。

$ zipcloak zip_file

例如,要为已创建的名为 files.zip 的 zip 文件设置密码,命令为:

$ zipcloak files.zip

系统会要求您输入密码。输入任意密码,然后按Enter。然后重新输入密码并按 Enter 来验证该密码。

使用 zipdetails 命令查看文件详细信息

Zipdetails 命令显示有关压缩文件的详细信息。它显示的信息是关于记录结构而不是压缩数据。要查找有关压缩文件的详细信息,请输入 zipdetails,后跟压缩文件名,如下所示:

$ zipdetails zip_file

例如,要查找有关压缩文件 test.zip 的详细信息,命令为:

$ zipdetails test.zip

在输出中,您将看到有关压缩文件的大量信息。

使用 zipgrep 命令在文件内搜索

zipgrep 命令允许我们在压缩文件内的文件中搜索给定文本,而无需解压它。如果 zip 文件受密码保护,则您必须先输入密码。要搜索 zip 文件内的文本,请使用以下语法:

$ zipgrep expression zip_file

例如,要搜索 zip 文件 test.zip 中的哪些文件包含单词 gateway,命令为:

$ zipgrep gateway test.zip

输出如下。您可以在测试中看到两个文件iplist.text和iplist。zip包含单词gateway。

要从 zip 文件内的特定文件中搜索文本,您还可以添加它:

$ zipgrep expression zip_file filename

例如,以下命令将仅从 zip 文件 test.zip 内的特定文件 iplist  中搜索单词 gateway :

$ zipgrep gateway test.zip Document/docs/iplist

使用zipinfo命令查看信息

Linux 中的 zipinfo 命令列出 zip 文件中包含的文件及其权限、压缩类型、原始大小、日期和时间戳。要查看有关特定 zip 文件的信息,请键入 zipinfo,后跟文件名,如下所示:

$ zipinfo filename

以下命令将显示有关 zip 文件files1.zip的信息:

$ zipinfo files1.zip

使用 zipsplit 命令分割文件

有时,zip 文件的大小太大,由于大小限制,您无法上传它或将其作为附件发送。使用 zipsplit 命令,您可以将 zip 文件分割成更易于传输的更小的文件。要将 zip 文件拆分为较小的文件,且大小不超过 ,语法为:

$ zipsplit –n <size> zip_file

是分割文件的最大大小。

例如,下面的命令会将 test.zip 分割成较小的文件,大小不超过 104857600 字节 (104 MB)。

$ zipsplit -n 104857600 test.zip

使用 zipnote 添加或查看 zip 文件中的注释

使用 zipnote 命令,您可以添加、查看和编辑 zip 文件中的注释。要查看评论,请使用以下命令:

$ zipnote zip_file

将zip文件替换为您的实际 zip 文件名。

如果没有评论,您将看到以下默认视图:

要添加评论,首先,您需要将 zipnote 的输出重定向到评论文件。使用以下命令来执行此操作:

$ zipnote zip_file > comments

例如,要向 files1.zip 添加注释,命令为:

$ zipnote files1.zip > comments

现在,使用以下命令编辑评论文件:

$ sudo nano comments

对于每个文件,在@(此行上方的注释)行上方添加注释,然后保存并退出文件。我们在评论文件中添加了两条评论,如下面的屏幕截图中突出显示的那样。

现在使用以下命令将注释写入您的 zip 文件:

$ zipnote -w zip_file < comments

在我们的例子中,命令是:

$ zipnote -w files1.zip < comments

现在,您可以通过在终端中发出以下命令来验证注释是否已添加:

$ zipnote zip_file

查看帮助

要查看有关 zip 命令的帮助,请使用以下命令:

$ zip --help

您还可以使用以下命令访问 zip 实用程序手册页:

$ man zip

Linux 中的解压命令

使用 unzip 命令,您可以轻松地从 zip 文件中提取内容。要解压缩文件,请使用以下语法:

$ unzip options zip_file

解压单个 zip 文件

要解压缩单个 zip 文件(假设为 test.zip),命令为:

$ unzip test.zip

将文件解压到不同的目录

您还可以使用 -d 选项将文件解压缩到其他目录而不是当前目录,如下所示:

$ unzip zip_file -d /path/to/directory

要将 zip 文件 test.zip 解压缩到 Documents 目录,命令为:

$ unzip test.zip -d Documents/

解压多个文件

考虑当前目录中有多个要解压缩的 zip 文件。您可以使用单个命令解压缩所有文件,如下所示:

$ unzip ‘*.zip’

此命令将解压缩当前目录中的所有 zip 文件。

使用解压缩时抑制输出

与 zip 命令类似,您还可以使用 -q 选项隐藏 unzip 命令的输出,如下所示:

$ unzip -q zip_file

使用解压缩排除文件

如果您想要解压缩 zip 文件但不想解压特定文件,请使用下面的-x选项:

$ unzip zip_file –x filename

例如,我们有一个 zip filetest.zip,其中包含三个文件。以下命令将解压缩除报告.txt一个文件之外的所有文件:

$ unzip test.zip -x report.txt

解压缩受密码保护的 zip 文件

要在没有提示的情况下解压受密码保护的 zip 文件,请使用 -P 选项,后跟该文件的密码:

$ unzip -P <password> zip_file

例如,我们有一个 zip 文件test.zip,该文件受密码“tin”保护。要提取该文件,命令为:

$ unzip -P tin test.zip

覆盖 zip 文件

如果您将文件解压缩到解压缩文件已存在的位置,系统将提示您:覆盖当前文件、跳过当前文件的解压缩、覆盖所有文件、跳过所有文件的解压缩或重命名文件。

要覆盖所有现有文件而不提示,请使用 -o 选项,如下所示:

$ unzip -o zip_file

列出 zip 的内容

将 -l 选项与 unzip 命令结合使用,您可以列出 zip 文件的内容而不解压它。

$ unzip -l zip_file

示例:

$ unzip -l test.zip

以下是上述命令的输出,其中列出了 zip 文件 test.zip 中包含的文件及其名称、原始文件大小、日期和时间戳。

查看详细信息

为了在不解压 zip 文件的情况下查看详细信息,请使用 -v 选项,如下所示:

$ unzip -v zip_file

示例:

$ unzip -v test.zip

以下是上述命令的输出,其中列出了 test.zip 中包含的文件及其名称、原始文件大小、压缩大小、压缩方法、压缩方式比率、日期和时间戳。

检查存档中的错误

使用 unzip 命令中的 -t 选项,您可以检查 zip 文件是否有效且不包含任何错误。

$ unzip -t test1.zip

示例:

$ unzip -t test1.zip

上述命令检查 test1.zip 文件中的错误并显示结果。以下输出表明压缩文件中没有错误。

查看帮助

要查看有关 unzip 命令的帮助,请使用以下命令:

$ unzip --help

您还可以使用以下命令访问 unzip 实用程序手册页:

$ man unzip

结论

这就是在 Linux 中掌握 zip 和 unzip 命令所需了解的全部内容。在本文中,我们详细讨论了 Linux 中 zip 和 unzip 命令的使用以及各种命令行选项和示例。

©2015-2025 Norria support@alaica.com