在上一篇文章中,我们详细介绍了如何使用tar命令创建存档。虽然tar是一种非常常见的Linux压缩方案,但它并不像Windows和Mac OS X用户那样受欢迎,他们会发现大多数档案都是使用zip格式创建的。
它很容易使用在Linux中压缩(创建)和解压缩(扩展)存档。实际上,大多数GUI归档管理程序(如Ark,File Roller和Xarchiver)都将作为您计算机上几乎所有命令行归档程序的前端,Zip也不例外。当然,我们也可以从终端使用Zip。方法如下。
正如您可能猜到的,第一步是打开终端。
接下来,输入“sudo apt-get install zip unzip”(不带引号),只是为了确保我们已经安装了zip和unzip。
注意:如果已安装这两个程序,您将收到一条消息,说明是这种情况,如上所示。
安装完成后,我们可以使用zip来创建存档(或修改现有存档),并解压缩以将其扩展为原始存档。为了本文的目的,我们将在桌面上创建一个名为Stuff的新文件夹。在终端中,我们可以使用一个命令来执行此操作 - mkdir / home / username / Desktop / Stuff(当然,您将用您自己的用户名替换“username”,如下所示,并且如果桌面上已有Stuff文件夹,则需要更改名称。
现在我们有了一个Stuff文件夹,我们将使用'cd'命令使Stuff文件夹成为我们当前的工作目录。
cd / home / username / Desktop / Stuff
现在,输入触摸doc1.txt doc2.txt doc3.txt&& mkdir文件进入你的终端,它将创建一个名为Files的文件夹,以及Stuff文件夹中的三个文件 - doc1.txt,doc2.txt和doc3.txt。
再一个命令,'cd'进入新创建的Files文件夹(cd Files),因为我们需要一些其他文件。
cd文件
最后,输入触摸doc4.txt doc5.txt doc6.txt以创建三个新文档。
现在,输入cd ../..将桌面更改回工作目录。
我们在创建zip文件之前的倒数第二步是在桌面上创建一些“额外”文档,其名称与我们刚刚创建的文件相同,所以输入触摸doc2.txt doc3.txt来创建它们。
最后,打开两个“额外的” “文本文件并向其添加一些文本。它不需要任何有意义的(或长的),只是这样我们就可以看到这些文档确实与已经在Stuff和文件夹中创建的文档不同。
一旦完成,我们就可以开始创建我们的zip文件。使用zip的最简单方法是告诉它你想要创建的zip存档的名称,然后明确地命名应该进入它的每个文件。因此,假设我们的工作目录是桌面,我们将输入zip test Stuff / doc1.txt Stuff / doc2.txt Stuff / doc3.txt来创建名为test.zip的存档(我们不会需要在命令中使用“.zip”扩展名,因为它将自动添加),其中包含在Stuff文件夹中找到的doc1.txt,doc2.txt和doc3.txt。
你会看到一些输出,告诉我们已经添加了三个文件(doc1.txt,doc2.txt和doc3.txt)存档。
我们可以通过双击存档来测试它,存档应该放在我们的桌面上。这样做应该在标准存档程序(KDE中的Ark,GNOME中的File Roller和Xfce中的Xarchiver)中打开它。
现在,那么Files文件夹呢?假设我们想要它,将其中的文档添加到我们的存档中,我们可以使用与上面相同的命令,但在命令的末尾添加Stuff / Files / *。
星号表示包含文件夹中的所有内容。因此,如果Files文件夹中有另一个文件夹,它也会被添加。但是,如果该文件夹中包含项目,则不会包含它们。要做到这一点,我们需要添加-r(代表递归或递归)。
它需要注意的是,上述两个命令并非旨在将文件“添加”到zip存档中;他们的目的是创造一个。但是,由于存档已存在,该命令只是将任何新文件添加到现有存档中。我想一次创建这个档案(而不是我们为了教育目的逐步添加文件而执行的三个步骤),我们可以简单地输入zip -r test Stuff / *和会创建相同的存档。
您将从命令和输出中注意到包含Stuff文件夹中的三个文件,以及Files文件夹中的三个文档,所以一切都是通过一个简单的命令完成的。
现在,我们在桌面上创建的那两个“额外”文档呢?那么,zip工作的方式是,如果您尝试将文件添加到存档中已存在的存档,则新文件将覆盖旧文件。所以,由于我们在桌面上创建的文档(doc2.txt和doc3.txt)都有内容(我们将“hello world!”添加到doc2.txt,将“yay”添加到doc3.txt),我们应该能够添加这些文档然后能够测试它。首先,我们将两个“额外”文档拖到Stuff文件夹中。
您可能会被问到是否希望新文档覆盖现有文档(这是在文件夹中,请记住,不是zip存档),所以让这件事发生。
现在已经完成了,让我们通过输入zip test Stuff / doc2.txt Stuff / doc3.txt将它们添加到存档中>
您会注意到上面的命令现在显示的文件正在更新而不是添加。如果我们现在检查存档,我们会注意到文件看起来是一样的,但是当打开doc2.txt和doc3.txt时,你会看到他们现在有内容,而不是我们原始文件的空白
有时在Linux中,您会看到通过在文件名的开头添加句点(“。”)来隐藏某些文件。这对于需要存在的配置文件尤其常见,但通常不可见(这会使杂乱变得容易,并且不太可能意外删除配置文件)。我们可以很容易地将这些添加到zip文件中。首先,我们假设我们要在目录中的每个文件中创建一个名为backup的zip文件。我们可以通过在终端中键入zip backup *来实现此目的。
这将添加所有文件和文件夹,但不包括这些文件夹中的任何项目。要添加它们,我们会再次添加-r,以便zip -r backup *成为命令。
zip -r backup。现在,解压缩非常简单。但是,在我们执行任何操作之前,请继续删除桌面上的文档(doc2.txt和doc3.txt)以及Stuff文件夹。一旦它们消失,输入解压缩test.zip会将原始压缩存档的内容扩展到当前目录。
注意:如果我们没有删除文档,我们会尝试将zip文件的内容解压缩到现有文件中,因此会询问我们是否要替换每个文档。
就是这样!压缩和解压缩是一项非常常见的任务,虽然有一些GUI选项可供使用,但通过练习你会发现从终端执行相同的任务也不是很困难。