Linux 压缩和解压缩命令

在 Windows 中,您有几个著名的 GUI 实用程序,如 WinRAR、7zip 等,可让您玩转存档文件。

在 Linux 的情况下你会做什么?

让我向您介绍一下 Linux 的 zip 和 unzip 命令。 这些是非常简单但功能强大的命令,可让您使用压缩的 zip 文件。

Linux 压缩命令

Zip 是最早用于计算机的几种常用文件压缩方法之一。 尽管 ZIP 方法提供的压缩不如许多其他可用方法好,但它确实使压缩对于普通用户来说非常简单。 它还默认与 Windows 集成,因此您只需右键单击文件或文件夹 > 单击发送到 > 压缩 (zip) 文件夹。

使用 Linux,这同样简单。 如果您使用的是 Ubuntu 或 Linux Mint 等 GUI 发行版,则很可能安装了压缩实用程序。 所以双击一个文件夹应该会打开 zip 文件。

在本教程中,我们将研究如何使用“zip”和“unzip”命令行实用程序来压缩和解压缩文件。

安装 zip 和 unzip 包

我们在本教程中使用的是 Ubuntu,因此包管理器将是“aptitude”或“apt-get”。 您可以使用系统的包管理器安装命令。 让我们开始安装。

[email protected]:~# apt-get install zip unzip 
Linux zip 和 unzip 安装

使用 Linux zip 命令进行简单文件压缩

您可以压缩一个文件/文件夹或多个文件/文件夹,而无需任何选项。 让我们看看如何。

在我的系统中,我们创建了一些文件和文件夹来使用 zip 命令。

列出 Zip 文件

该命令的格式如下:

压缩 [name of the zip file] [file(s) or folder(s)]

以下是一些关于如何压缩一个或多个文件夹的示例。

[email protected]:~# zip CompressedFolder f1 adding: f1/ (stored 0%) 
压缩文件夹压缩文件夹

如果要同时压缩多个文件或文件夹,只需输入文件或文件夹名称,如下图所示。

压缩多个文件夹压缩多个文件夹

与上面的示例完全相同,如果要压缩文件,请输入文件名而不是文件夹(或两者的组合)

使用 Zip 压缩文件使用 Zip 压缩文件

使用 -q(安静)选项

如果您正在压缩大量文件,则可以抑制输出,因此您不会像上面的示例中那样看到正在压缩的文件夹列表。

我们如何相当 zip 命令的输出? 通过简单地添加 -q 选项。

[email protected]:~# zip -q CompressedFiles one two three four five [email protected]:~#   

让我们看一个安静选项如何工作的示例。

使用带有安静选项的 Zip 压缩文件使用带有安静选项的 Zip 压缩文件

您会看到,当命令成功执行时,输出不再显示。

使用 -x 选项排除文件或文件夹

您希望压缩目录中的所有文件而无需键入单个名称,但是您希望从压缩文件中排除某些文件。 我们怎样才能做到这一点?

我们可以通过使用 zip 实用程序中的 -x 选项来做到这一点。 我们还将使用星号

[email protected]:~# zip CompressEverything * -x two    adding: f1/ (stored 0%)   adding: f2/ (stored 0%)   adding: f3/ (stored 0%)   adding: f4/ (stored 0%)   adding: f5/ (stored 0%)   adding: five (stored 0%)   adding: four (stored 0%)   adding: one (stored 0%)   adding: three (stored 0%)  
通配符表示我们希望将当前工作目录中的所有内容包含在存档中。Zip 文件排除

Zip 文件排除

正如您在输出中看到的,我们已经成功排除了名为“two”的文件。

仅更新更改或添加新文件而不更改现有文件。

我们创建了一个名为“Compress.zip”的压缩文件,其中包含所有文件和文件夹。 假设我们更新了 zip 文件中的现有文件。 我们可以利用-f 选项 ,代表“新鲜”,仅更新对 zip 文件中现有文件所做的更改,或使用 -u 选项

它更新对现有文件的更改并添加任何新文件。

[email protected]:~# zip -f * Compress.zip                                                                                            freshening: one (stored 0%)   
在下面的示例中,我们编辑了“one”文件并向其中添加了随机文本以演示 -f 选项。Zip 文件刷新 F 选项

Zip 文件刷新 F 选项

[email protected]:~# zip -u Compress.zip *  adding: six (stored 0%)  
“添加”新文件以更新 zip 的另一个示例。 这里我们添加了文件“six”来演示-u 选项的使用。Zip 更新文件选项

Zip 更新文件选项

Linux中的解压命令

zip 和 unzip 命令使用许多具有完全相同功能的相同选项。 我们上面讨论的所有上述选项也可以通过 unzip 命令获得。 让我们看几个例子。

解压无任何选项

[email protected]:~# unzip Compress.zip  Archive:  Compress.zip  
要解压缩文件,您不需要像 zip 命令一样默认添加任何选项。不带选项解压

不带选项解压

使用解压缩,默认行为是始终在覆盖文件之前寻求许可。 显然是这样,因为我们不希望一些旧文件只是重写它的更新版本,是吗?

解压缩命令中的 -q 选项

[email protected]:~# unzip -q Compress.zip 
与 zip 命令的 -q 选项类似,您可以使用 -q 选项消除 unzip 命令的输出。 让我们看看我们如何做到这一点安静地解压

安静地解压

使用 Unzip 排除、更新和刷新

由于这些选项的用法和功能与 zip 命令中的讨论完全相同,因此我们将它们组合在一起。 如果您想排除从存档中解压缩的文件,我们使用 -x 选项

[email protected]:~# unzip Compress.zip -x six Archive:  Compress.zip 
.解压缩文件排除

解压缩文件排除 要更新与文件夹中的相比对压缩文件所做的任何更改,您可以使用 -f 选项

. 但如果你有 将新文件夹或文件添加到文件夹中不存在的 zip 文件 你正在提取的,

-u 选项将仅自动提取/更新所需的文件。

让我们看下面两个命令的示例。解压缩刷新和更新

解压缩刷新和更新

如您所见,-f 选项在上述情况下没有任何作用,因为现有文件没有更改,但 -u 选项将丢失的文件“六”提取到文件夹中。

使用 -h(帮助)选项和手册页

[email protected]:~# unzip -h OR [email protected]:~# zip -h  

您可能需要将更多选项与 zip 和 unzip 命令一起使用,如果您知道它们会很方便。 确保您只需键入以下内容即可查看它们: 我们最近还写了一篇关于如何 Linux 中的手册页

[email protected]:~# man zip OR  [email protected]:~# man unzip 

当您需要正确理解命令时会非常有用。 这些页面将提供有关您正在寻找的命令的全面信息。 要访问 zip 和 unzip 命令的手册页,请打开终端并输入:

结论

zip 实用程序是一种非常有效且简单的实用程序,用于压缩需要通过网络甚至跨不同操作系统传输的文件。 尽管 zip 算法提供的压缩效果不是很好,但它可以达到目的。

由于 zip 压缩算法很简单,因此用于压缩解压缩 zip 文件的包也很简单。 只需练习几次,您就会对命令的功能变得非常高效。