Linux shell zip 命令
Linux shell zip 命令用于压缩文件。
zip 是个使用广泛的压缩程序,文件经它压缩后会另外产生具有 .zip
扩展名的压缩文件
zip命令语法格式
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$] [-b <工作目录>] [-ll] [-n <字尾字符串>] [-t <日期时间>] [-<压缩效率>] [压缩文件][文件...] [-i <范本样式>] [-x <范本样式>]
[选项]:
选项 | 描述 |
---|---|
-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的数值 |
范例
我们先看一下当前目录下有哪些文件
[root@localhost shell]# ls demo.cpp demo.sh demo1.sh demo2.sh main.c
1. 将当前目录下所有文件和文件夹打包为当前目录下的 demo.zip
[root@localhost shell]# zip -q -r demo.zip . [root@localhost shell]# ls demo.cpp demo.sh demo.zip demo1.sh demo2.sh main.c
2. 从压缩文件 demo.zip
中删除文件 demo.sh
[root@localhost shell]# zip -dv demo.zip demo.sh 1>1: updating: demo.sh (deflated 7%)