zip 归档和压缩文件

zip 不同于 gzip 压缩命令,它可直接用于压缩文件夹,压缩文件的扩展名为 .zip 。解压命令为 unzip

命令格式:

zip  [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...]  [-b path]
[-n suffixes] [-t date] [-tt date] [zipfile [file ...]]  [-xi list]

zipcloak (see separate man page)

zipnote (see separate man page)

zipsplit (see separate man page)

常用选项:

-d --delete
    从压缩包内删除指定的文件

-e --encrypt
    以在终端上输入的密码对 zip 压缩包进行加密

-f --freshen
    只更新压缩包里的文件(注意与 -u 的区别)

-F --fix
    修复 zip 压缩包

-g --grow
    添加文件到压缩包中

-i files
--include files
    只压缩指定的文件

-j --junk-paths
    压缩目录中的所有文件,但不保存路径关系

-k --DOS-names
    尝试使用与 MS-DOS 兼容的文件名

-m --move
    将文件移动到压缩包中

-n suffixes
--suffixes suffixes
    不压缩指定后缀名的文件

-o --latest-time
    更新压缩时间,以压缩包内最新更改时间的文件为准

-p --paths
    压缩时保留文件的路径关系(默认设置,与 -j 相反)

-P password
--password password
    使用密码加密 zip 压缩包(注意与 -e 的区别)

-q --quiet
    安静模式(不显示任何提示信息)

-r --recurse-paths
    递归处理,将目录下的所有文件和子目录一起压缩

-s splitsize
--split-size splitsize
    如果压缩包超出指定大小,则拆分为多个压缩包

-S --system-hidden
    压缩时包含系统文件和隐藏文件

-t mmddyyyy
--from-date mmddyyyy
    指定压缩包的日期

-T --test
    检测压缩包的完整性

-u --update
    更新压缩包里的文件,如果文件不在压缩包内,将加入到压缩包中

-v --verbose
    显示详细的执行过程

-x files
--exclude files
    压缩时排除符合条件的文件

-X --no-extra
    不保留额外的文件属性(如 uid/gid)

-z --archive-comment
    对压缩包中的文件进行注释

-0~9
    指定压缩效率,其中 -0 表示没有压缩(相当于 tar),默认的压缩级别为 -6

使用实例:

# 压缩单个文件,要压缩的文件必须在末尾
[Linux]$ zip code.zip code.txt

# 压缩多个文件夹
[Linux]$ zip -r code.zip /home/code var/www/

# 指定压缩速率压缩多个文件夹
[Linux]$ zip -9 -r code.zip /home/code var/www/