0%

解压方法之一 zip

解压方法之一 zip

.. _linux-beginner-zip:

:ref:unzip<linux-beginner-unzip>

.. note::
林花谢了春红,太匆匆。无奈朝来寒雨,晚来风。
李煜《相见欢·林花谢了春红》

Linux zip命令的功能是用于压缩文件,解压命令为unzip

通过zip命令可以将很多文件打包成.zip格式的压缩包,里面会包含文件的名称、路径、创建时间、上次修改时间、权限等信息,与tar命令相似。

对于类似文本文件而言,压缩比基本可以达到2:1到3:1.

官方的定义为:

zip - package and compress (archive) files

语法

zip的参数超级的多,各种设置也是很巧妙,不过常用的就几个,其他的放在后面再说。

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

参数

  • -r--recurse-paths :遍历整个目录 for example:
  • -j--junk-paths: 仅保存文件名,而不保存路径。默认情况下zip将保存整个路径

参考实例

将指定目录及其内全部文件都打包成zip格式压缩包文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ zip -r backuptest.zip /etc
adding: etc/resolv.conf (stored 0%)
adding: etc/fonts/ (stored 0%)
adding: etc/fonts/conf.d/ (stored 0%)
adding: etc/fonts/conf.d/65-0-wqy-zenhei-sharp.conf (deflated 88%)
adding: etc/fonts/conf.d/59-liberation-mono.conf (deflated 57%)
adding: etc/fonts/conf.d/57-paratype-pt-sans.conf (deflated 66%)
adding: etc/fonts/conf.d/59-liberation-sans.conf (deflated 74%)
adding: etc/fonts/conf.d/65-0-ttf-arphic-uming.conf (deflated 87%)
adding: etc/fonts/conf.d/65-1-vlgothic-gothic.conf (deflated 74%)
adding: etc/fonts/conf.d/65-0-lohit-nepali.conf (deflated 57%)
adding: etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf (deflated 43%)
adding: etc/fonts/conf.d/61-urw-d050000l.conf (deflated 71%)
adding: etc/fonts/conf.d/57-dejavu-sans.conf (deflated 77%)
...

zip还支持通配符的表达,比如将当前工作目录内所有以.jpg为后缀的文件打包:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ zip -r backuptest.zip *.jpg
adding: test0.jpg (deflated 56%)
adding: test10.jpg (deflated 56%)
adding: test12.jpg (deflated 56%)
adding: test14.jpg (deflated 56%)
adding: test16.jpg (deflated 56%)
adding: test18.jpg (deflated 56%)
adding: test20.jpg (deflated 56%)
adding: test2.jpg (deflated 56%)
adding: test22.jpg (deflated 56%)
adding: test24.jpg (deflated 56%)
adding: test26.jpg (deflated 56%)
adding: test28.jpg (deflated 56%)

仅保存文件名

zip默认情况下会保存路径信息,如果加上-j将不保存路径信息,而仅仅保存文件。
这个情况可以在希望把同一类文件放在一起时比较有用。

1
$ zip -j foo foo/*
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道