基本用法
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
常用命令
-o 将压缩文件内的所有文件的最新变动时间设为压缩的时间
-q 安静模式,在压缩的时候不显示指令执行的过程
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-d 从压缩文件内删除指定的文件
-i “文件列表” 只压缩文件列表中的文件(可多个)
-x “文件列表” 压缩时排除文件列表中指定的文件(可多个)
-u 更新文件到压缩文件中
-m 将文件加入压缩文件压缩后,删除原始文件
-F 尝试修复损坏的压缩文件
-T 检查压缩文件内的每个文件是否正确无误
完整参数
-A 调整自解压程序。
-c 添加单行注释。
-d 从 zipfile 中删除条目。
-db 展示正在执行的字节数和尚未执行(压缩)的字节数。
-dc 展示正在执行的文件数和尚未执行(压缩)的文件数。
-dd 每10MB展示为一个点。
-dg 将整个归档用点代表,而不是为每个文件。
-ds 每个点都代表一个 siz ,其中 siz 是以 nm 为单位作为分割(0 代表没有点)。
-D 不添加目录条目。
-DF 也写作 --dif。只包括有改变的文件或比输入归档较新的文件。
-e 设置解压权限,使用标准(弱)PKZip 2.0 编码,提示输入密码。
-f 只更新有改变的文件。
-F 修复 zipfile(-FF 更努力地修复)。拷贝潜在损坏的归档中的文件到新归档中,尝试正常读取归档并仅复制完整条目
-FF 尝试挽救可能导致不完整条目的内容。必须使用 --out 指定输出的归档。使用 -v 查看详细信息。
-FS 如果日期或大小改变了就更新,系统不存在的文件就删除。
-i 压缩时只包括的文件。
-ic 大小写不敏感。
-j 不压缩目录,只压缩文件。
-J 删除 zipfile 中的前缀(unzipsfx)。
-l 将 LF 转换为 CR LF (-ll 是将 CR LF 转换为 LF)。
-lf path 打开 path 的文件作为日志文件(覆盖已存在的文件)。
-la 追加到已存在的日志文件。
-li 包括 info 信息(默认只有警告和错误信息)。
-m 将文件移动到 zipfile 中,并从系统中删除源文件。
-n 不压缩具有指定后缀的文件。
-o 以压缩文件列表中最新的文件的更新时间为压缩文件的更新时间。
--out 输出到新的归档。如果输入是拆分的,输出将会默认为相同的拆分大小。使用-s=0 或 -s- 来关闭拆分。如果覆盖旧的拆分归档,但是需要的拆分数量较少,旧的拆分归档没有被覆盖的就保持原状。
-P 使用标准编码,设置密码。
-q 不显示执行过程。
-r 递归目录。
-R 递归当前目录中匹配的文件。
-s ssize 使用大小为 ssize 的拆分文件大小创建拆分存档。
-sp 在每个拆分操作结束时暂停,来切换磁盘。
-sb 暂停时响铃。
-sv 创建拆分时显示详细信息。
-sf 展示操作的文件后退出(-sf- 日志文件专属)。
-su 类似 -sf 但是展示转义 UTF-8 Unicode 名称,如果存在。
-sU 类似 -sf 但是展示转义 UTF-8 Unicode 名称。
-t 包括在指定日期当天货之后有修改的文件。
-tt 包括在指定日期之前有修改的文件。日期格式(mmddyyyy 或 yyyy-mm-dd)。
-T 测试 zipfile 的完整性。
-TT cmd 使用命令 cmd 测试归档。
-u 只更新有改变的文件或新文件。
-U 从 zipfile 中选择文件复制(和 --out 一起使用)。等于 --copy。
-v 显示详细执行信息。如果只执行 “zip -v”,则展示版本信息。
-x 压缩时排除文件。
-X 排除额外的文件属性。
-y 将软链作为链接保存,而不是作为文件。
-z 添加 zipfile 的注释。
-Z 后接压缩方式:store(只保存,等于 -0),deflate(压缩,默认值),如果系统支持 bzip2,可以使用 bzip2 方式。
-0 只保存,不压缩。
-1~-9 1是更快地压缩,9是更好地压缩,默认值是6。
-@ 从标准输入读取文件名。
用法示例
使用示例:
- 递归当前目录并压缩以 .h 为结尾的文件:
zip zipfile -r . -i "*.h"
- 压缩 path 到 zipfile,排除 pattern:
zip -x pattern pattern @ zipfile path path ...
- 归档更新:
zip zipfile -FS -r dir
- 从 inarchive 复制 pattern 文件到 outarchive:
zip inarchive --copy pattern pattern ... --out outarchive
- 从 old_archive 复制以 .c 结尾的文件(排除foo.c)到 new_archive:
zip old_archive --copy "*.c" --out new_archive -x foo.c
- 修复 bad.zip 为 fixed.zip:
zip -F bad.zip --out fixed.zip
zip bad.zip -FF -v --out fixed.zip
- 递归当前目录,如果有 foofull 中没有的文件或有改变的文件,就压缩到 foonew 中:
zip -r foofull . -DF --out foonew
评论区