linux 命令:zip 详解

zip 命令的功能是打包和压缩文件。

用法

        zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

        如果 zipfile 未提供,压缩标准输入并把结果写到标准输出。

选项

        -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 更努力地修复)。拷贝潜在损坏的归档中的文件到新归档中。                      -F 尝试正常读取归档并仅复制完整条目,而 -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。

        -@       从标准输入读取文件名。

通配符

        ?        匹配任意单个字符。

        *         匹配任意个数的字符,包括0(0 到 正无穷)

        [list]    匹配 list 中的字符(正则),可以使用范围表示 [ac-f],排除字符 [!bf]

一般情况下,* 会跨越目录级别,比如 'a*b' 可以匹配 'ac/db'。如果使用 -ws,* 不会跨越,  **会跨越。

使用示例:

1.  递归当前目录并压缩以 .h 为结尾的文件:

        zip zipfile -r . -i "*.h"

2. 压缩 path 到 zipfile,排除 pattern:

        zip -x pattern pattern @ zipfile path path ...

3. 归档更新:

        zip zipfile -FS -r dir

4. 从 inarchive 复制 pattern 文件到 outarchive:

        zip inarchive --copy pattern pattern ... --out outarchive

5. 从 old_archive 复制以 .c 结尾的文件(排除foo.c)到 new_archive:

        zip old_archive --copy "*.c" --out new_archive -x foo.c

6. 修复 bad.zip 为 fixed.zip:

        zip -F bad.zip --out fixed.zip

        zip bad.zip -FF -v --out fixed.zip

7. 递归当前目录,如果有 foofull 中没有的文件或有改变的文件,就压缩到 foonew 中:

        zip -r foofull . -DF --out foonew

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值