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