在Linux中使用Zip命令
描述
zip命令是任何操作系统上最有用的工具之一。它允许你将多个文件压缩成一个压缩的档案文件。然后你可以使用解压缩命令解压该档案文件。本教程将告诉你如何使用zip命令来创建和提取档案。
在本教程中,我们将了解Linux中的zip命令行工具。我们将学习如何使用它来创建和提取档案。zip命令是GNU核心实用程序包的一部分。它可以用来创建和提取档案文件。
基本用法
z
(或x
)命令最基本的用途之一是将一个文件压缩成一个档案。例如,我们可以将两个文本文件压缩成一个名为important-backup.tar.gz的归档文件,输入 –
在不解压缩的情况下列出存档内容
我们有时只需要看一下归档文件的内容,而不需要提取它们。为了达到这个目的,可以使用zipinfo命令和unarchive命令,它们都是zip包的一部分。
如果我们想看一个名为 “archive.zip “的归档文件的内容,我们可以使用命令行工具zipinfo来做 —
我们可以使用unzip命令直接列出归档文件的内容。
使用-l选项,tar程序实际上并不解压缩,而只是显示其内容。
在不解压缩的情况下删除档案中的文件
如果你想从存档的备份中删除一些文件而不提取它们,请使用 zip 命令的 -d 选项。例如,如果你想删除 important-backup 文件夹中的 statement.txt 文件,运行下面的命令 -d。
让我们看看在命令返回后,归档的important-backups.zip文件里有什么。
我们可以看到statement.txt已经从压缩文件中被删除,而不必先解压其内容。
加密档案
zip命令提供了-e标志来加密档案,要求提供一个密码,作为生成的加密档案的加密密钥。
让我们创建并加密一个存档文件 encrypted-backup.zip —
通过调用-e标志,该命令将要求我们提供一个密码,该密码将被用来加密数据。
如果我们现在试图解压缩档案,它会要求我们提供解压缩的密码—。
然而,我们仍然可以在不知道密码的情况下,使用zipinfo和unzip等工具列出加密档案的内容——。
我们可以看到,当我们试图阅读其内容列表时,它没有提示我们输入密码。
递归遍历子目录
通常情况下,zip命令不会创建一个目录及其内容的档案。但是,当添加了-r标志后,zip会从子目录中收集文件,形成一个单一的档案。
例如,假设我们有一个目录prod-secret,其中包含一些秘密文件–
要创建整个prod-secret目录的档案,我们可以运行带有标志-r -的zip命令。
运行带有选项-r的命令可以确保目录内的文件也被包括在内。
然而,zip命令将忽略prod-secret目录中的文件,如果没有标志-r –
包括和排除文件模式
我们可以使用 zip 文件来创建过滤器,这些过滤器将包括或排除某些文件。此外,这些过滤器是通过glob模式识别的。此外,这些过滤器可以被用于创建、删除或刷新。
假设我们在以下目录中工作–
当我们查看tree命令的输出时,我们可以看到我们的目录遵循一个图形化的结构。出现了两个.git文件夹–一个在当前文件夹,另一个在prod-secret。
包括符合模式的文件和文件夹
我们可以使用-i标志来创建一个包含过滤器。这意味着文件应该遵循过滤器的模式,以便在使用zip命令时被包含。
让我们创建一个仅由.git子文件夹组成的归档文件only-git.zip —
从输出结果中,我们可以看到,zip命令只归档与glob匹配的文件夹和文件。
排除符合模式的文件和文件夹
要创建一个排除过滤器,我们可以使用标志-x,后面跟一个glob模式。Zip在使用时将忽略符合排除过滤器模式的文件。特别是,我们可以使用zip -x创建一个排除.git文件夹的存档。
我们可以从输出中观察到,该命令没有将任何一个.git文件夹添加到no-git.zip存档中。
结论
本教程为我们提供了一个关于zip命令行工具的全面概述。
我们从基本的安装指南开始,同时介绍了语法结构和基本用法。最后,我们介绍了在不解压缩的情况下检查存档内容的方法。
之后,我们说明了一些选择,这些选择使我们对已经存在的档案有了权限。此外,我们还说明了使用递归标志和过滤器来设置归档的一些可能性,以包括和排除什么。