zip命令详解

  

基础命令学习目录首页

 

好文链接:https://www.cnblogs.com/yinzhengjie/p/6247833.html

原文链接:https://www.cnblogs.com/ferryCaptain-cloud/p/7440200.html

功能说明:压缩文件。

语  法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工 作目录>][-ll][-n <字 尾字符串>][-t <日 期时间>][-<压 缩效率>][压 缩文件][文件...][-i <范本样式>][-x <范本样式>]

补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具 有".zip"扩展名 的压缩文件。

参  数:

-A   调 整可执行的自动解压缩文件。

-b<工作目录>   指 定暂时存放文件的目录。

-c   替 每个被压缩的文件加上注释。

-d   从 压缩文件内删除指定的文件。

-D   压 缩文件内不建立目录名称。

-f   此 参数的效果和指定"-u"参 数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。

-F   尝 试修复已损坏的压缩文件。

-g   将 文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。

-h   在 线帮助。

-i<范本样式>   只 压缩符合条件的文件。

-j   只 保存文件名称及其内容,而不存放任何目录名称。

-J   删 除压缩文件前面不必要的数据。

-k   使 用MS-DOS兼容格 式的文件名称。

-l   压 缩文件时,把LF字符 置换成LF+CR字 符。

-ll   压 缩文件时,把LF+CR字 符置换成LF字符。

-L   显 示版权信息。

-m   将 文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-n<字尾字符串>   不 压缩具有特定字尾字符串的文件。

-o   以 压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。

-q   不显 示指令执行过程。

-r   递 归处理,将指定目录下的所有文件和子目录一并处理。

-S   包 含系统和隐藏文件。

-t<日期时间>   把 压缩文件的日期设成指定的日期。

-T   检 查备份文件内的每个文件是否正确无误。

-u   更 换较新的文件到压缩文件内。

-v   显 示指令执行过程或显示版本信息。

-V   保 存VMS操作系统的文 件属性。

-w   在 文件名称里假如版本编号,本参数仅在VMS操 作系统下有效。

-x<范本样式>   压 缩时排除符合条件的文件。

-X   不 保存额外的文件属性。

-y   直 接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之 类的系统下有效。

-z   替 压缩文件加上注释。

-$   保 存第一个被压缩文件所在磁盘的卷册名称。

-<压缩效率>   压 缩效率是一个介于1-9的 数值。

 

例子

 

例1. 压缩test.MYI

 

将/root/mcw_test/这个目录下所有文件和文件夹打包为当前目录下的 mcw.zip:

zip -q -r mcw.zip /root/mcw_test
[root@xiaoma /root/xiaoma] test!
#ls -F /root/mcw_test/
1.sh  ma.txt  xiaoma_guohe/  魔降风云变.txt
[root@xiaoma /root/xiaoma] test!
#zip -q -r mcw.zip /root/mcw_test
[root@xiaoma /root/xiaoma] test!
#ls
mcw.zip

如果在我们在 /root/mcw_test/目录下,可以执行以下命令:

zip -d mcw.zip root/mcw_test/ma.txt

[root@xiaoma /root/mcw_test] test!
#zip -q -r mcw.zip *
[root@xiaoma /root/mcw_test] test!
#ls -F 
1.sh  ma.txt  mcw.zip  xiaoma_guohe/  魔降风云变.txt

从压缩文件 mcw.zip 中删除文件 ma.txt

zip -d mcw.zip root/mcw_test/ma.txt

[root@xiaoma /root/mcw_test/mcw] test!
#ls /root/mcw_test/
1.sh  ma.txt  mcw  mcw.zip  xiaoma_guohe  魔降风云变.txt
[root@xiaoma /root/mcw_test/mcw] test!
#zip -q -r mcw.zip /root/mcw_test/*
[root@xiaoma /root/mcw_test/mcw] test!
#zip -d mcw.zip root/mcw_test/ma.txt
deleting: root/mcw_test/ma.txt
[root@xiaoma /root/mcw_test/mcw] test!
#unzip mcw.zip ;ls root/mcw_test/
Archive:  mcw.zip
  inflating: root/mcw_test/1.sh      
   creating: root/mcw_test/mcw/
 extracting: root/mcw_test/mcw.zip   
   creating: root/mcw_test/xiaoma_guohe/
 extracting: root/mcw_test/魔降风云变.txt  
1.sh  mcw  mcw.zip  xiaoma_guohe  魔降风云变.txt

(1)将/etc目录下的所有文件以及目录进行压缩,设置压缩级别为最高,保存到文件/opt/etc.zip。
[root@mylinux ~]# zip -r /opt/etc.zip /etc
(2)将/var目录中所有文件以及子目录压缩,除了“*.log”的文件,将压缩文件保存到/opt目录下。
[root@mylinux ~]#zip –r /opt/var.zip /var –x “*.log”
(3)将上面/opt/etc.zip中的etc/passwd文件从压缩包中删除。
[root@mylinux ~]#zip /opt/etc.zip –d etc/passwd
deleting: etc/passwd
(4)修改了/etc/inittab文件,希望把更改信息更新到/opt/etc.zip包中。
[root@mylinux ~]#zip –u /opt/etc.zip /etc/inittab
如果/etc目录下很多文件进行了修改或者增加了很多文件,就需要把/etc目录下的全部信息更新到/opt/etc.zip文件。可以使用以下命令:
[root@mylinux ~]#zip –u /opt/etc.zip /etc/* 或者使用
[root@mylinux ~]# zip –ru /opt/etc.zip /etc
看出点玄机了吗?在上例中,其实“/etc/*”就代表了/etc目录下的所有文件以及子目录,而这刚好是zip命令“-r”选项完成的功能。
(5)将/opt/etc.zip压缩文件全部解压到/etc目录下,除了etc/inittab文件,并且在解压过程中如果出现相同的文件就直接进行覆盖,不要求用户确认。可以使用以下命令:
[root@mylinux ~]#unzip –o /opt/etc.zip –x etc/inittab –d /etc

 

posted @ 2018-09-02 00:17  马昌伟  阅读(25123)  评论(0编辑  收藏