1、功能

zip命令的功能是用于压缩文件,解压命令为unzip。通过zip命令可以将文件打包成.zip格式的压缩包,里面会附含文件的名称、路径、创建时间、上次修改时间等等信息,与tar命令相似。

2、语法

  • 语法格式:
zip (选项)  (参数)
  • 常用选项:
选项 含义
-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-z 替压缩文件加上注释
-v 显示指令执行过程或显示版本信息
-d 更新压缩包内文件
-n<字尾字符串> 不压缩具有特定字尾字符串的文件
  • 选项
选项 含义
-A 调整可执行的自动解压缩文件;
-b <工作目录> 指定暂时存放文件的目录;
-c 替每个被压缩的文件加上注释;
-d 从压缩文件内删除指定的文件;
-D 压缩文件内不建立目录名称;
-f 此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F 尝试修复已损坏的压缩文件;
-g 将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h 在线帮助;
-i<范本样式> 只压缩符合条件的文件;
-j 只保存文件名称及其内容,而不存放任何目录名称;
-J 删除压缩文件前面不必要的数据;
-k 使用MS-DOS兼容格式的文件名称;
-l 压缩文件时,把LF字符置换成LF+CR字符;
-ll 压缩文件时,把LF+cp字符置换成LF字符;
-L 显示版权信息;
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串> 不压缩具有特定字尾字符串的文件;
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q 不显示指令执行过程;
-r 递归处理,将指定目录下的所有文件和子目录一并处理;
-S 包含系统和隐藏文件;
-t<日期时间> 把压缩文件的日期设成指定的日期;
-T 检查备份文件内的每个文件是否正确无误;
-u 更换较新的文件到压缩文件内;
-v 显示指令执行过程或显示版本信息;
-V 保存VMS操作系统的文件属性;
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式> 压缩时排除符合条件的文件;
-X 不保存额外的文件属性;
-y 直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z 替压缩文件加上注释;
-$ 保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率> 压缩效率是一个介于1~9的数值;
  • 参数

    • zip压缩包:指定要创建的zip压缩包;
    • 文件列表:指定要压缩的文件列表。

3、参考实例

  • 将指定目录及其内全部文件都打包成zip格式压缩包文件:
[root@linuxcool ~]# zip -r backup1.zip /etcadding: etc/fstab (deflated 45%)adding: etc/crypttab (stored 0%)adding: etc/resolv.conf (stored 0%)adding: etc/dnf/ (stored 0%)adding: etc/dnf/modules.d/ (stored 0%)adding: etc/dnf/modules.d/container-tools.module (deflated 17%)adding: etc/dnf/modules.d/llvm-toolset.module (deflated 14%)
………………省略部分输出信息………………
  • 将当前工作目录内所有以.cfg为后缀的文件打包:
[root@linuxcool ~]# zip -r backup2.zip *.cfgadding: anaconda-ks.cfg (deflated 44%)adding: initial-setup-ks.cfg (deflated 44%)
  • 更新压缩包文件中某个文件:
[root@linuxcool ~]# zip -dv backup2.zip anaconda-ks.cfg
1>1: updating: anaconda-ks.cfg (deflated 44%)
  • 将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/html
  • 上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
zip -q -r html.zip html
  • 比如现在我的html目录下,我操作的zip压缩命令是:
$ zip -q -r html.zip *
  • 压缩 example/basic/ 目录内容到 basic.zip 压缩包中 -x 指定排除目录,注意没有双引号将不起作用。
$ zip -r basic.zip example/basic/ -x "example/basic/node_modules/*" -x "example/basic/build/*" -x "example/basic/coverage/*"

上面压缩解压出来,内容存放在 example/basic/, 如果想存放到根目录,进入目录进行压缩,目前没有找到一个合适的参数来解决此问题。

  • 压缩效率选择:
$ zip -9 # 1-9 faster->better
  • 创建 public_html 目录下忽略所有文件和文件夹,排除包括文本 backup 的所有文件。
$ zip -r public_html.zip public_html -x *backup*
  • httpdocs 目录忽略 .svn 文件或 git 的文件和目录下创建所有文件的归档。
$ zip -r httpdocs.zip httpdocs --exclude *.svn* --exclude *.git*
  • httpdocs 目录忽略的所有文件,并与 .log 结尾的目录下创建所有文件的归档。
$ zip -r httpdocs.zip httpdocs --exclude "*.log"

4、问题解决

CentOS7中命令找不到

-Bash: Unzip: Command Not Found

解决方法

yum install -y unzip zip

【Linux command 06】zip命令 – 压缩文件相关推荐

  1. zip文件命令 linux,zip命令 – 压缩文件

    zip程序将一个或多个压缩文件与有关文件的信息(名称.路径.日期.上次修改的时间.保护和检查信息以验证文件完整性)一起放入一个压缩存档中.可以使用一个命令将整个目录结构打包到zip存档中. 对于文本文 ...

  2. linux,使用tar命令压缩文件时文件损坏打不开(与参数“z”有关)

    线上环境是Linux,我使用tar命令打包了一份文件想发送到本地(Windows).结果发现本地和线上这个文件都不能成功解压出来.刚开始还以为时本地是Windows导致的,后来发现不是. 原来是学艺不 ...

  3. linux zip压缩包大小,Linux中巧用zip命令压缩和解压缩文件

    在Windows中,我们用得最多的解压缩软件就是WinRAR了,这个软件对我们实现解压缩非常方便.但是如果在Linux系统中,我们还可以尝试用命令来实现对文件的解压缩,这篇文章主要介绍在Linux中用 ...

  4. linux常用解压和压缩文件的命令

    linux常用解压和压缩文件的命令 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---- ...

  5. python zipfile压缩的文件用shell命令解压_Python学习第177课——bzip2、zip方式压缩文件和解压文件...

    之前我们学习了tar打包.解包.gzip压缩,现在我们学习gzip解压. ●gzip解压 现在我们把上节生成的压缩文件linux_compressed.gz进行解压,使用命令: tar -xzf li ...

  6. linux history文件路径,Linux、Unix常用命令(文件和目录相关)

    mkdir dirname 建立子目录. 注意:用户不能在一个不存在的目录中建立子目录. mkdir data 在当前目录下建立子目录 data mkdir /usr/data 在/usr/目录下建立 ...

  7. 20191004在LINUX下如何将tar压缩文件解压到指定的目录下

    百度搜索:tar 解压缩到指定目录 https://zhidao.baidu.com/question/9844116.html 在LINUX下如何将tar压缩文件解压到指定的目录下 各位,请教一下在 ...

  8. linux系统如何解压rar文件怎么打开,在Linux下如何打开RAR压缩文件

    关键词: 在Windows下常见的RAR压缩文件在Linux下目前还没有免费的打开工具. 如果要用,只能用RAR的Linux试用版本. 下载地址是:http://www.rarlab.com/down ...

  9. Linux中如何用命令打开文件夹

    Linux中如何用命令打开文件夹 文章目录: 一.点击Linux桌面文件图标打不开 二.解决方式 三.杀死所有nautilus相关进程 你是否遇到过Linux桌面文件图标打不开,我就遇到过,此时我的眼 ...

最新文章

  1. python实现Anderson-Darling正态分布检验
  2. 如何用C语音实现传递函数?
  3. 当UG的License服务器换了后, 客户端如何调整?
  4. 树莓派学习笔记——交叉编译工具链
  5. php中const和define,PHP中const和define的区别是什么
  6. OkHttp实现分析之Websocket
  7. PAT1050 螺旋矩阵 (25 分)【全部通过 关于段错误的原因 以及测试点7】
  8. ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目
  9. 面试感悟----一名3年工作经验的程序员应该具备的技能--读后感
  10. no jdk specified
  11. CAD三维图怎么倒斜角?
  12. python-pygame作品之MineCraft小鸡
  13. python迭代器 for循环
  14. 【设计教程】在PS里面制作简单的下雨效果!
  15. 如何重新启动Windows的Explorer.exe(以及任务栏和“开始”菜单)
  16. Spring MVC原理解析
  17. JAVA中如何精确取到时间间隔
  18. 卡尔曼滤波之观测值的似然估计
  19. Docker - 应用镜像
  20. Java基础教程带你走进java的世界

热门文章

  1. matlab for循环教程,Matlab for循环使用操作教程分享
  2. 网络编程面试汇总(C++)
  3. PL/0解释程序输出运行栈(带注释)
  4. 5.14——教你把ssh抄成ssm
  5. linux系统查看网口流量,linux 查看网口流量
  6. 和平精英微信名片服务器繁忙,和平精英微信游戏名片是什么 微信游戏名片设置方法一览[多图]...
  7. java全栈系列之JavaSE--冒泡排序028
  8. vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件
  9. 软考中级 真题 2016年上半年 系统集成项目管理工程师 应用技术 下午试卷
  10. 计算机语言python-一、计算机语言与python简介