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%)