zip 命令的解释与示例
这篇文章是 Linux 命令学习系列的一部分。
zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。
这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩 zip 文件的软件,也提供提取它们的功能。
由于它很流行,几乎所有的操作系统都内置了这个功能。
在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。
Linux 中的 Zip 命令示例
语法
在 Linux 中,你需要使用的压缩文件的程序名称是 zip
。下面是基本的语法:
zip [压缩文件名] file1 file2 file3
以下是正式的语法:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
理想情况下,zip
命令应该被安装在所有主流的 Linux 发行版中。如果没有,使用下面的命令来安装它。
在 Debian、Ubuntu 和相关发行版上安装
sudo apt install zip
在 Fedora、基于 RHEL 的系统上安装
sudo dnf install zip
在 Arch Linux 上安装
pacman -S zip
让我们继续看一些例子。
如何压缩文件和文件夹
我的测试目录中有以下三个文件。它们是 file1.txt
、file2.txt
和 file3.txt
。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip
的压缩包,用下面的命令就可以了。
zip myfiles.zip file1.txt file2.txt file3.mp3
输出:
adding: file1.txt (stored 0%)
adding: file2.txt (stored 0%)
adding: file3.mp3 (deflated 13%)
Linux 中基本压缩命令的输出
这里你应该记住几个要点。
- 当创建一个 zip 文件时,你应该有对当前目录的修改权限。
- zip 文件格式不包含权限,即读(4)、写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。
- 如果你想使用带有权限的 zip,可以尝试使用
tar
命令(将在后面的教程中解释)。 - 在上面的输出中,
zip
命令显示了被添加到存档中的文件名和压缩方法。 - 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,
zip
会在最后加上 .zip。
当你操作成百上千的文件时,为了减少终端中的输出,你可以使用 -q
参数来抑制 zip
命令中的输出:
zip -q myfiles.zip file1.txt file2.txt file3.txt
递归压缩子文件夹
zip
命令的 -r
选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。
下面的命令创建了一个包含 my_folder
内所有内容和子目录的压缩文件:
zip -r myfolder.zip my_folder
你也可以使用通配符(*
)在你的压缩文件中包含特定类型的文件:
zip -0 my_movies.zip *.mp4
混合添加文件和目录到压缩文件
有了以上所有的选项,zip
命令允许你把文件和目录一起作为参数指定。
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
,后面跟上算法名称,如下所示:
zip -r -Z bzip2 myfolder.zip my_folder
压缩级别
zip
命令还允许你指定压缩级别。压缩级别是指你想让 zip 优化多少来减少包的大小。它是一个从 0 到 9 的数值范围。压缩级别为 9 的值是最高的压缩。默认值是 6。
记住,如果你用 zip 压缩成千上万个大小不一的文件,它可能会占用较多的系统资源,并花费大量的时间。所以,如果你在程序中使用它,或者用 shell 脚本处理大量的文件,请遵循正确的编程标准。
zip -9 -r myfolder.zip my_folder
用密码保护一个压缩文件
你也可以用下面的 -e
选项对压缩文件进行密码保护:
zip -e -r myfolder.zip my_folder
运行该命令后,它将要求输入密码。
注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。
分割较大的压缩文件
许多应用程序、服务器和文件共享可能包含固定大小的文件上传限制。例如,你有一个 10GB 的文件,但服务只允许每个文件 1GB。使用 zip
的 -s
选项,你可以将其压缩并分割成几块进行上传。
zip -s 1g -r myfolder.zip my_folder
总结
你学到了一些 zip
命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。
同时,你可以在 zip 手册 中了解更多。
via: Learn zip Command in Linux Using Examples
作者:Arindam 选题:lkxed 译者:Chao-zhi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
zip 命令的解释与示例相关推荐
- w 命令的解释与示例
下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子. 这篇文章是 Linux 命令学习系列的一部分. w 命令 w 命令是 Linux 中的一个工具 ...
- linux 解压所有以zip结尾的文件_在 Linux 上压缩文件:zip 命令的各种变体及用法...
除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作.这是一些其他的 zip 选项以及它们如何提供帮助. -- Sandra Henry-stocker(作者) 为了节省一些磁盘空间并 ...
- 【Linux】一步一步学Linux——zip命令(67)
00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 zip 命令是一个应用广泛的跨平台的压缩工具,压缩文件的后 ...
- linux 上plsql命令_在 Linux 上压缩文件:zip 命令的各种变体及用法 | Linux 中国
除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作.这是一些其他的 zip 选项以及它们如何提供帮助.-- Sandra Henry-stocker 为了节省一些磁盘空间并将文件打包 ...
- Linux 命令(102)—— zip 命令
1.命令简介 zip 命令是一个应用广泛的跨平台的打包和压缩工具,使用 Deflate(LZ77 + 哈夫曼编码)无损压缩算法将文件压缩为后缀为 .zip 的 zip 文件.其配套的命令为 unzip ...
- ValidateAntiForgeryToken的用途,解释和示例
本文翻译自:ValidateAntiForgeryToken purpose, explanation and example Could you explain ValidateAntiForger ...
- bat脚本常用命令及亲测示例代码超详细讲解
这篇文章主要介绍了bat脚本常用命令及亲测示例代码超详细讲解,在这里需要注意编辑bat文件请使用ANSI编码,不然容易出现中文乱码,需要的朋友可以参考下 目录一 1.语句注释 2.暂停 3.输出和换行 ...
- Mothur 命令手册-Mothur命令中文解释(二)
Mothur命令中文解释--Mothur中文简易教程 这些是mothur H-Z的目前所有命令的说明的翻译,第二部分.(使用Ctrl+F搜索你所查命令) 参看http://www.mothur.org ...
- linux zip 命令详解
功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...
最新文章
- Ansible 介绍和架构、特性
- 企业核心员工的长期激励计划
- 跨越十年,我的重要时刻它从未离开过
- java new的是构造函数_Java构造函数
- 看看高手做的ARM开发板
- LeetCode 2187. 完成旅途的最少时间(二分查找)
- 【蓝桥杯单片机】PWM(LED亮度调节)
- X5档案-参加业务架构平台研讨会后记
- shell 查看空行与删除空行
- php array函数 array_filter 过滤数组中的空值
- ADI超声解决方案 和系统成像设计
- Inflated 3D ConvNet 【I3D】
- CC00039.scala——|HadoopScala.V01|——|Scala.v01|特质|作为接口|使用特质|
- Altium Designer PCB设计规则中英对照
- 在线九宫切图(九宫格切图)工具
- libfacedetection 人脸检测库的基本使用
- 英汉字典程序C语言,分享纯C语言英汉字典源码
- 带孔缝箱体屏蔽效能仿真分析
- 如何在Window7下彻底清除360注册表
- Javase;jdk的安装调试;基础语法和变量以及基础数据类型