Linux 中使用 Zip 和 Unzip 命令

压缩和解压缩文件和目录是任何系统管理员的常见任务。 当我们在无头远程服务器上工作时,这是一项必不可少的技能。 有很多工具可用于压缩和解压缩文件和目录。 其中,Zip 是一种流行的跨平台命令行工具,用于在 Linux 中压缩和归档数据。 它允许我们将多个文件和目录组合成一个存档文件。 Unzip 命令用于从压缩存档中解压缩或提取内容。

在这篇文章中,我们将向我们展示 Linux 中使用 Zip 和 Unzip 命令。

先决条件

  • 在 云平台上运行 Linux 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

安装 Zip 和解压缩

默认情况下,所有主要 Linux 发行版的默认存储库中都提供了 Zip 和 Unzip 工具。

对于 Debian 和 Ubuntu 操作系统,使用以下命令安装 Zip 和 Unzip:

apt-get install zip unzip -y

对于 RHEL、Rocky Linux 和 Fedora 操作系统,使用以下命令安装 Zip 和 Unzip:

dnf install zip unzip -y

使用 zip 命令压缩文件

压缩文件的基本语法如下所示:

zip [OPTION] file.zip file

例如,要压缩单个文件,请运行以下命令:

zip file1.zip file1.txt

要压缩多个文件,请运行以下命令:

zip files.zip file1.txt file2.txt file3.txt

输出:

  adding: file1.txt (deflated 58%)
  adding: file2.txt (deflated 58%)
  adding: file3.txt (deflated 58%)

将文件添加到现有 Zip 存档

我们可以使用带有 -u 选项的 zip 命令将附加文件添加到现有的 zip 存档中。

zip -u files.zip file4.txt

输出:

  adding: file4.txt (deflated 58%)

查看 Zip 文件的内容

我们可以使用 zipinfo 命令查看 zip 文件的内容。

例如,要查看 files.zip 文件的内容,请运行以下命令:

zipinfo files.zip

输出:

Archive:  files.zip
Zip file size: 12634 bytes, number of entries: 4
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:16 file1.txt
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:16 file2.txt
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:16 file3.txt
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:20 file4.txt
4 files, 28896 bytes uncompressed, 12028 bytes compressed:  58.4%

从现有 Zip 存档中删除文件

我们可以使用带有 -d 选项的 zip 命令从 zip 存档中删除文件。

例如,要从 files.zip 存档中删除 file2.txt,请运行以下命令:

zip -d files.zip file2.txt

输出:

deleting: file2.txt

压缩后删除原始文件

当我们使用 zip 命令压缩单个或多个文件时,zip 将原始文件与压缩文件一起保存。 创建压缩存档后,我们可以使用 -m 选项删除原始文件。

zip -m newfiles.zip file1.txt file2.txt file3.txt file4.txt

输出:

  adding: file1.txt (deflated 58%)
  adding: file2.txt (deflated 58%)
  adding: file3.txt (deflated 58%)
  adding: file4.txt (deflated 58%)

使用 zip 命令压缩目录

Zip 还允许我们使用 zip 命令压缩目录。 我们将需要使用 -r 选项以递归方式压缩目录。

压缩目录的基本语法如下所示:

zip -r directory.zip directory

例如,要压缩名为 students 的目录,请运行以下命令:

zip -r students.zip students

输出:

  adding: students/ (stored 0%)
  adding: students/gujarati.txt (deflated 58%)
  adding: students/maths.txt (deflated 58%)
  adding: students/english.txt (deflated 58%)

要压缩多个目录,请运行以下命令:

zip -r directory.zip directory1 directory2 directory3

创建受密码保护的 Zip 文件

Zip 还允许我们创建受密码保护的 zip 存档。 我们可以在 zip 命令中使用 -e 选项来创建受密码保护的 zip 文件。

zip -r -e teachers.zip teachers

输出:

Enter password: 
Verify password: 
  adding: teachers/ (stored 0%)
  adding: teachers/gujarati.txt (deflated 58%)
  adding: teachers/maths.txt (deflated 58%)
  adding: teachers/english.txt (deflated 58%)

解压缩压缩文件

解压缩文件的基本语法如下所示:

unzip file.zip

例如,要解压缩名为 files.zip 的压缩文件,请运行以下命令:

unzip files.zip

输出:

Archive:  files.zip
  inflating: file1.txt               
  inflating: file3.txt               
  inflating: file4.txt               

如果要将文件解压缩到不同的目录,请在 unzip 命令中使用 -d 选项。

例如,要将名为 students.zip 的文件解压缩到学生目录,请运行以下命令:

unzip students.zip -d students

输出:

Archive:  students.zip
   creating: students/students/
  inflating: students/students/gujarati.txt  
  inflating: students/students/maths.txt  
  inflating: students/students/english.txt  

要从 files.zip 文件中提取名为 file1.txt 的单个文件,请运行以下命令:

unzip files.zip file1.txt

输出:

Archive:  files.zip
  inflating: file1.txt               

如果要在不提示的情况下覆盖现有文件,请使用 -o 选项,如下所示:

unzip -o files.zip

查看压缩文件的内容

我们可以在 unzip 命令中使用 -l 选项来查看压缩文件的内容。

例如,要列出名为 student.zip 的压缩文件的内容,请运行以下命令:

unzip -l students.zip

输出:

Archive:  students.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2022-04-19 17:17   students/
     7224  2022-04-19 17:17   students/gujarati.txt
     7224  2022-04-19 17:17   students/maths.txt
     7224  2022-04-19 17:17   students/english.txt
---------                     -------
    21672                     4 files

要列出压缩文件的内容以及文件的详细信息,请使用 -Z 选项:

unzip -Z students.zip

输出:

Archive:  students.zip
Zip file size: 9691 bytes, number of entries: 4
drwxrwxr-x  3.0 unx        0 bx stor 22-Apr-19 17:17 students/
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:17 students/gujarati.txt
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:17 students/maths.txt
-rw-r--r--  3.0 unx     7224 tx defN 22-Apr-19 17:17 students/english.txt
4 files, 21672 bytes uncompressed, 9021 bytes compressed:  58.4%

将 Zip 档案拆分为多个文件

有时,压缩文件的大小非常大,我们无法通过电子邮件将其作为附件发送。 在这种情况下,我们可以使用 zip 命令将压缩存档分解为多个较小的文件。

例如,要将名为 directory 的目录的压缩存档创建为 3MB 文件,请运行以下命令:

zip -r -s 3m file.zip directory

我们现在可以使用以下命令验证所有创建的压缩文件:

ls

输出:

directory  file.z01  file.z02  file.z03  file.z04  file.z05  file.z06  file.z07  file.z08  file.z09  file.z10  file.zip

我们还可以使用以下命令检查每个文件的大小:

du -hs *

我们应该看到以下输出:

3.0M	file.z01
3.0M	file.z02
3.0M	file.z03
3.0M	file.z04
3.0M	file.z05
3.0M	file.z06
3.0M	file.z07
3.0M	file.z08
3.0M	file.z09
3.0M	file.z10
1.7M	file.zip

在本指南中,我们解释了如何使用 Zip 和 Unzip 命令在 Linux 中压缩和解压缩文件和目录。 我已经通过实际示例演示了这两个命令的用法,以便更好地理解。 希望我们现在可以在日常操作中轻松使用 Zip 和 Unzip 命令。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论