Redian新闻
>
zip 命令的解释与示例 | Linux 中国

zip 命令的解释与示例 | Linux 中国

科技
 
导读:这是一份关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。               
本文字数:2945,阅读时长大约:4分钟

这篇文章是 Linux 命令🔗 www.debugpoint.com学习系列的一部分。

zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。

这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩 zip 文件的软件,也提供提取它们的功能。

由于它很流行,几乎所有的操作系统都内置了这个功能。

在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。

Linux 中的 Zip 命令示例

语法

在 Linux 中,你需要使用的压缩文件的程序名称是 zip。下面是基本的语法:

  1. zip [压缩文件名] file1 file2 file3

以下是正式的语法:

  1. zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

理想情况下,zip 命令应该被安装在所有主流的 Linux 发行版中。如果没有,使用下面的命令来安装它。

在 Debian、Ubuntu 和相关发行版上安装

  1. sudo apt install zip

在 Fedora、基于 RHEL 的系统上安装

  1. sudo dnf install zip

在 Arch Linux 上安装

  1. pacman -S zip

让我们继续看一些例子。

如何压缩文件和文件夹

我的测试目录中有以下三个文件。它们是 file1.txtfile2.txt 和 file3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。

  1. zip myfiles.zip file1.txt file2.txt file3.mp3

输出:

  1. adding: file1.txt (stored 0%)
  2. adding: file2.txt (stored 0%)
  3. adding: file3.mp3 (deflated 13%)

Linux 中基本压缩命令的输出

这里你应该记住几个要点。

◈ 当创建一个 zip 文件时,你应该有对当前目录的修改权限。
◈ zip 文件格式不包含权限,即读(4)、写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。
◈ 如果你想使用带有权限的 zip,可以尝试使用 tar 命令(将在后面的教程中解释)。
◈ 在上面的输出中,zip 命令显示了被添加到存档中的文件名和压缩方法。
◈ 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,zip 会在最后加上 .zip。

当你操作成百上千的文件时,为了减少终端中的输出,你可以使用 -q 参数来抑制 zip 命令中的输出:

  1. zip -q myfiles.zip file1.txt file2.txt file3.txt

递归压缩子文件夹

zip 命令的 -r 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。

下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件:

  1. zip -r myfolder.zip my_folder

你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件:

  1. zip -0 my_movies.zip *.mp4

混合添加文件和目录到压缩文件

有了以上所有的选项,zip 命令允许你把文件和目录一起作为参数指定。

  1. zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2

压缩算法

zip 压缩的默认输出包含两个不同的词,即 deflate 和 store。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store

目前有许多压缩算法。其中一种是 bzip2 压缩法,在 Linux 中的 zip 命令支持它。你可以指定压缩算法作为一个命令选项来使用。使用选项 -Z,后面跟上算法名称,如下所示:

  1. zip -r -Z bzip2 myfolder.zip my_folder

压缩级别

zip 命令还允许你指定压缩级别。压缩级别是指你想让 zip 优化多少来减少包的大小。它是一个从 0 到 9 的数值范围。压缩级别为 9 的值是最高的压缩。默认值是 6。

记住,如果你用 zip 压缩成千上万个大小不一的文件,它可能会占用较多的系统资源,并花费大量的时间。所以,如果你在程序中使用它,或者用 shell 脚本处理大量的文件,请遵循正确的编程标准。

  1. zip -9 -r myfolder.zip my_folder

用密码保护一个压缩文件

你也可以用下面的 -e 选项对压缩文件进行密码保护:

  1. zip -e -r myfolder.zip my_folder

运行该命令后,它将要求输入密码。

注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。

分割较大的压缩文件

许多应用程序、服务器和文件共享可能包含固定大小的文件上传限制。例如,你有一个 10GB 的文件,但服务只允许每个文件 1GB。使用 zip 的 -s 选项,你可以将其压缩并分割成几块进行上传。

  1. zip -s 1g -r myfolder.zip my_folder

总结

你学到了一些 zip 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。

同时,你可以在 zip 手册🔗 linux.die.net 中了解更多。


via: https://www.debugpoint.com/zip-command-linux-examples/

作者:Arindam 选题:lkxed 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :insidentally
🌟🌟🌟🌟
翻译: 34.0 篇
|
贡献: 2343 天
2016-09-11
2023-02-10
https://linux.cn/lctt/Chao-zhi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
w 命令的解释与示例 | Linux 中国试试这个 Linux 网络浏览器作为你的文件管理器 | Linux 中国在 Linux 中使用 “Converter” GUI 工具转换和操作图像 | Linux 中国在 Linux 上试试这个基于 Python 的文件管理器 | Linux 中国7 种 Linux 中 Find 命令的高级用法世界上只有两个 Linux 发行版:Arch Linux 与其它 | Linux 中国在 Linux 命令行上使用 dict 文字工具 | Linux 中国在 Linux 中创建定时器 | Linux 中国周末愉快 爬梯Linux 6.1 内核被批准为长期支持版本 | Linux 中国回顾 2022 五个最佳 Linux 发行版 | Linux 中国OBS Studio 29 发布,但对 Linux 用户来说变化不大 | Linux 中国如何在 Linux 中更新 Flatpak 软件包 | Linux 中国适用于 Linux 的五大流媒体直播应用 | Linux 中国植物为主的膳食抗癌吗?5 个适合视力障碍者的 Linux 发行版 | Linux 中国Manjaro Linux 22.0 发布 | Linux 中国吃整全植物抗癌吗?Linux 实现简易的 Shell 命令行解释器lnav: 用于 Linux 的高级日志文件浏览器 | Linux 中国2023 年十佳 Linux 服务器发行版 | Linux 中国Python 中的变量:概念与示例 | Linux 中国使用 PCManFM 文件管理器让你的 Linux PC 轻装上阵 | Linux 中国《更多的诗歌》:12: 我什么都没许诺: 朋友将要分离GNOME 2 的 Linux 文件管理器 Caja | Linux 中国40 个简单又有效的 Linux Shell 脚本示例如何在 Linux 中降级 Flatpak 软件包 | Linux 中国Linux Mint 21.1 发布:大量的视觉变化和改进 | Linux 中国天赋“易昺(bǐng)”,创造历史!who 命令的解释与示例 | Linux 中国whereis 命令的解释与示例 | Linux 中国周末随笔如何在 Linux 中使用 SCP 安全地传输文件 | Linux 中国如何在 Linux 系统中访问 UEFI 设置 | Linux 中国Cinnamon 是一个被低估的神奇 Linux 桌面环境 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。