zip命令用于在Linux / Unix操作系统的压缩和文件打包。unzip命令用于解压缩档案。见以下zip和unzip命令的一些典型应用示例。
例1:打包目录中的所有文件。
此命令将/ backup目录下的所有文件打包。但不会递归打包。
# zip backup-11Apr2013.zip /backup/*
示例输出:
adding: backup/anaconda.ifcfg.log (deflated 47%)
adding: backup/anaconda.log (deflated 78%)
adding: backup/anaconda.program.log (deflated 84%)
adding: backup/anaconda.storage.log (deflated 90%)
adding: backup/boot.log (deflated 72%)
adding: backup/dracut.log (deflated 92%)
adding: backup/httpd/ (stored 0%)
adding: backup/kadmind.log (deflated 74%)
adding: backup/krb5kdc.log (deflated 71%)
adding: backup/mysqld.log (deflated 82%)
例2:打包目录里面所有文件扩展名为.log文件。
我们有时需要打包以特定的扩展名的文件时,用Linux通配符来做到这一点。
# zip backup-11Apr2013.zip /backup/*.log
示例输出:
adding: backup/anaconda.ifcfg.log (deflated 47%)
adding: backup/anaconda.log (deflated 78%)
adding: backup/anaconda.program.log (deflated 84%)
adding: backup/anaconda.storage.log (deflated 90%)
adding: backup/boot.log (deflated 72%)
adding: backup/dracut.log (deflated 92%)
adding: backup/kadmind.log (deflated 74%)
adding: backup/krb5kdc.log (deflated 71%)
adding: backup/mysqld.log (deflated 82%)
adding: backup/pm-powersave.log (deflated 15%)
adding: backup/wpa_supplicant.log (stored 0%)
adding: backup/Xorg.0.log (deflated 83%)
adding: backup/Xorg.9.log (deflated 83%)
adding: backup/yum.log (deflated 77%)
例3:递归的打包压缩一个目录中的所有文件。
以下命令将递归创建归档并且子目录也创建归档。
# zip -r backup-all-dir-11Apr2013.zip /backup
例4:创建密码保护的压缩包。
我们需要创建密码有时保护的存档。使用-p 使存档有密码的保护。
# zip -p backup.zip /backup/*.log
例5:创建不同压缩级别的压缩包文件。
zip命令提供了10个级别压缩(0-9)的。 -6作为默认的压缩级别。 -0用于最低水平压缩。 -9用于hightest水平压缩
# zip 9 high-compressed-file.zip /backup/*
# zip 0 lowest-compressed-file.zip /backup/*
检查压缩文件之间的差异
# ls -lh lowest-compressed-file.zip high-compressed-file.zip
-rw-r--r--. 1 root root 50K Apr 11 14:14 high-compressed-file.zip
-rw-r--r--. 1 root root 447K Apr 11 14:14 lowest-compressed-file.zip
可以看到这两个文件的大小之间的差。
例6:列表压缩包文件中的内容。
使用unzip -l 命令,你可以看到任何压缩文件中的文件列表。
# unzip -l backup-11Apr2013.zip
示例输出:
Archive: backup-11Apr2013.zip
Length Date Time Name
--------- ---------- ----- ----
140 04-11-2013 14:07 backup/anaconda.ifcfg.log
11153 04-11-2013 14:07 backup/anaconda.log
15446 04-11-2013 14:07 backup/anaconda.program.log
136167 04-11-2013 14:07 backup/anaconda.storage.log
2722 04-11-2013 14:07 backup/boot.log
211614 04-11-2013 14:07 backup/dracut.log
0 04-11-2013 14:08 backup/httpd/
1382 04-11-2013 14:07 backup/kadmind.log
1248 04-11-2013 14:07 backup/krb5kdc.log
6485 04-11-2013 14:07 backup/mysqld.log
87 04-11-2013 14:07 backup/pm-powersave.log
0 04-11-2013 14:07 backup/wpa_supplicant.log
30186 04-11-2013 14:07 backup/Xorg.0.log
31094 04-11-2013 14:07 backup/Xorg.9.log
6739 04-11-2013 14:07 backup/yum.log
--------- -------
454463 15 files
例7:解压压缩包文件。
unzip命令用来解压压缩的文件。使用下面的命令来简单地解压一个压缩包文件。
# unzip backup.zip
例8:检查一个归档文件。
使用-t检查一个归档文件。此选项中在内存中的抽取每个指定的文件,并比较了他们的CRC(循环冗余校验,增强的校验和)。
# unzip -t backup-11Apr2013.zip
示例输出:
Archive: backup-11Apr2013.zip
testing: backup/anaconda.ifcfg.log OK
testing: backup/anaconda.log OK
testing: backup/anaconda.program.log OK
testing: backup/anaconda.storage.log OK
testing: backup/boot.log OK
testing: backup/dracut.log OK
testing: backup/httpd/ OK
testing: backup/kadmind.log OK
testing: backup/krb5kdc.log OK
testing: backup/mysqld.log OK
testing: backup/pm-powersave.log OK
testing: backup/wpa_supplicant.log OK
testing: backup/Xorg.0.log OK
testing: backup/Xorg.9.log OK
testing: backup/yum.log OK
No errors detected in compressed data of backup-11Apr2013.zip.