zip 是用于创立存档文件或压缩文件的命令。这使您能够压缩文件并为硬盘驱动器或可挪动驱动器上的其余文件创建更多空间。此外,将文件 / 目录压缩使它们更便宜,更易于上传,下载甚至通过电子邮件发送它们。有压缩就有解压缩,咱们应用 unzip 命令来解压缩文件并独自拜访它们。
在开始探讨 zip 和 unzip 命令之前,让咱们看看如何从命令行装置这些命令
装置 zip 和 unzip 命令
在 Ubuntu / Debian / Linux Mint 上装置,运行上面的命令
$ sudo apt install -y zip unzip
or
$ sudo apt-get install -y zip unzip
在 CentOS / RHEL / Fedora 上装置,运行上面的命令
$ sudo yum install -y zip unzip
or
$ sudo dnf install -y zip unzip
Zip 命令
压缩文件就像 ABC 一样简略,语法如下
$ zip OPTIONS archive.zip file
在你持续之前,有几点须要思考
- 在压缩文件之前,须要对正在压缩的文件和目录地位具备写权限
- 解压缩或提取文件时,用户领有文件 / 目录所有权
(1) 应用 zip 命令压缩单个文件和多个文件
假如当前目录中有文件 reports1.txt,将其压缩到名为 reports.zip 的归档文件中。
$ zip reports.zip reports1.txt
此外,您能够将多个文件压缩到一个存档中,如下所示
$ zip archive.zip file1 file2 file3
同样,假如咱们有三个文件 reports1.txt、reports2.txt 和 reports3.txt。要将它们压缩到归档 reports.zip 文件中,运行该命令
$ zip reports.zip reports1.txt reports2.txt reports3.txt
(2) 向 zip 归档文件中增加文件 (-u)
At times, you may find the need to add a file to a zip archive. To do so, use the -u flag. For example, to add another file reports4.txt, run:
应用 -u
标记向 zip 归档文件中增加一个文件。例如:要增加另一个文件 reports4.txt,运行如下命令
$ zip -u reports.zip report4.txt
(3) 查看压缩文件的内容
$ zipinfo archive.zip
(4) 压缩当前目录下的所有文件 (*)
如果当前目录中有多个文件,能够应用通配符将它们全副压缩,如上面的语法所示
$ zip archive.zip *
例如,要将主目录中的所有文件压缩为 home.zip 归档文件,请执行以下命令。请确保您正在主目录中工作。
$ zip home.zip *
(5) 从归档中删除文件 (-d)
应用 -d
选项从归档文件中删除文件,例如:从压缩文件中删除 reports4.txt
$ zip -d reports.zip reports4.txt
(6) 压缩后删除文件 (-m)
正如您可能曾经留神到的,原始文件即便在压缩或存档之后依然保留。
如果您心愿在归档期间删除它们用以节俭空间,请应用 -m
选项,如下所示
$ zip -m reports.zip reports1.txt reports2.txt reports3.txt
(7) 压缩目录 (-r)
到目前为止,咱们曾经理解了如何压缩文件。通常,您的工作是压缩目录,因为它们在大部分工夫内占用更多的空间。
要压缩文件夹,请应用上面的语法,`-r` 选项递归地压缩文件夹。
$ zip -r archive.zip folder
例如,要将目录 data 压缩到归档文件 data.zip,请执行
$ zip -r data.zip data
与文件一样,您也能够将多个文件夹同时压缩,如图所示
$ zip -r archive.zip folder1 folder2 folder3
(8) 将文件压缩到另一个中央
要将文件压缩到当前目录以外的其余指标,只需在语法中指定压缩归档的门路
$ zip /path/to/destination/archive.zip file
For example, the file hello.txt is archived to file.zip file in the Documents/data/sales path.
例如,将文件 hello.txt 归档到 Documents/data/sales 目录
zip Documents/data/sales/file.zip hello.txt
(9) 将文件和目录压缩到它们本人的归档中
如果出于某种原因,您心愿将当前目录中的文件和目录压缩到它们各自的 zip 归档中,请应用 for 循环,如图所示
$ for i in *; do zip -r "${i%}.zip" "$i"; done
例如,上面的示例将文件 hello.txt 和 sales 文件夹别离压缩到各自的归档文件 hello.zip 和 sales.zip 中。
Unzip 命令
该命令用于解压缩压缩后的文件和目录。让咱们看一下该命令的几个示例用法
(1) 查看压缩文件的内容 (-l)
在解压缩文件或目录之前,能够应用 -l
选项查看归档文件的内容,如下所示
$ unzip -l archive.zip
例如:
$ unzip -l data.zip
(2) 查看压缩文件的具体内容 (-Z)
要查看文件的详细信息,如文件权限和存档文件的总大小,请应用 -Z
选项,如图所示
$ unzip -Z data.zip
(3) 解压缩文件
解压缩压缩文件采纳上面的语法,并在当前工作目录中进行。
$ unzip archive.zip
例如:
$ unzip data.zip
(4) 将文件解压缩到另一个目录
要将归档文件提取或解压缩到不同的目的地,请应用 -d
选项并指定目的地门路
$ unzip archive.zip -d /path/to/destination/folder
例如:
$ unzip data.zip -d /home/linuxtechi/Documents
(5) 从存档中解压缩一个或多个文件
通常,你会有一个蕴含多个文件的压缩文件。您能够抉择只解压缩一个或两个文件,而不是齐全解压存档。要实现这一点,请依照语法中所示指定文件
$ unzip archive.zip file1 file2
例如,要从归档文件 home.zip 中提取一个名为 hello.txt 的文件
$ unzip home.zip hello.txt
此外,您能够将文件提取到其余指标文件夹,而不是当前目录。例如:
$ unzip home.zip hello.txt -d Documents/data/sales
(6) 排除某些文件被解压 (-x)
正如您能够从存档中提取特定的文件一样,能够应用 -x
选项从解压缩中排除某些文件。
$ unzip archive.zip -x file1
例如,上面的示例将文件 file1.txt 和 file2.txt 排除在提取之外。
$ unzip archive.zip -x file1.txt file2.txt
(7) 克制 unzip 命令的输入 (-q)
您可能曾经留神到,显示解压缩文件和被解压缩文件地位的解压缩操作的详细信息会打印在终端上。要克制此信息,请应用 -q
选项,如下所示
$ unzip -q data.zip
(8) 笼罩现有文件 (-o)
当您在同一个目录中运行两次 unzip 命令时,将提醒是否替换、疏忽提取或重命名现有文件,如上面的输入所示。
如果您心愿笼罩现有文件,而不须要提醒,请应用 -o
选项,如下所示
$ unzip -o data.zip
(9) 解压多个文件
最初,要一次性解压缩多个文件,请在所示语法中应用通配符
$ unzip archive.zip '*.txt'
留神:*.txt
参数要应用单引号包裹。
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)