UNPKG

4.64 kBMarkdownView Raw
1zip
2===
3
4可以用来解压缩文件
5
6## 补充说明
7
8**zip命令** 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
9
10### 语法
11
12```shell
13zip(选项)(参数)
14zip [-选项] [-b 路径] [-t 日期] [-n 后缀名] [压缩文件列表] [-xi 列表]
15```
16
17### 选项
18
19```shell
20-f: 刷新:仅更改的文件
21-u: 更新:仅更改或新文件
22-d: 删除 zip 文件中的条目
23-m: 移至 zip 文件(删除操作系统文件)
24-r: 递归到目录
25-j: 垃圾(不记录)目录名
26-0: 仅存储
27-l: 将 LF 转换为 CR LF (-ll CR LF 到 LF)
28-1: 压缩速度更快
29-9: 压缩得更好
30-v: 详细操作/打印版本信息
31-q: 安静运行
32-c: 添加一行注释
33-z: 添加 zip 文件注释
34-@: 从标准输入读取名称
35-o: 使 zip 文件与最新条目一样旧
36-x: 排除以下名称
37-i: 仅包含以下名称
38-F: 修复 zip 文件(-FF 更加努力)
39-D: 不添加目录条目
40-A: 调整自解压exe
41-D: 不添加目录条目
42-T: 测试 zip 文件的完整性
43-X: 排除额外的文件属性
44-n: 不压缩这些后缀
45-e: 加密
46-y: 将符号链接存储为链接而不是引用的文件
47-h2: 显示更多帮助
48```
49
50### 参数
51
52* zip压缩包:指定要创建的zip压缩包;
53* 文件列表:指定要压缩的文件列表。
54
55### 实例
56
57压缩单个文件,这会将 `file.txt` 文件压缩到名为 `compressed.zip` 的归档文件中
58
59```shell
60zip compressed.zip file.txt
61```
62
63压缩多个文件,下面这个命令会把 `file1.txt``file2.txt`,和 `file3.txt` 压缩到一个叫做 `compressed.zip` 的归档文件中。
64
65```shell
66zip compressed.zip file1.txt file2.txt file3.txt
67```
68
69压缩整个目录,下面这个命令 `-r` 参数表示递归压缩,该命令将压缩 `folder` 目录及其所有子目录和文件
70
71```shell
72zip -r compressed.zip folder/
73```
74
75使用最大压缩比压缩文件,下面这个命令 `-9` 参数指定了最大压缩比,尽管可能需要更长的处理时间
76
77```shell
78zip -9 compressed.zip file.txt
79```
80
81创建密码保护的 zip 文件,下面这个命令 `-e` 参数会提示用户输入密码以创建加密的 zip 文件。
82
83```shell
84zip -e secure.zip file.txt
85```
86
87只压缩新文件或已更改的文件,如果 `compressed.zip` 已存在,`-u` 参数会更新归档中的 `file.txt` 或将其添加至归档中(如果它是新的)
88
89```shell
90zip -u compressed.zip file.txt
91```
92
93压缩文件但不保留目录结构,`-j` 参数将不保留 `file.txt` 的父目录 `folder`,文件在 zip 中的位置将是在根目录下
94
95```shell
96zip -j compressed.zip folder/file.txt
97```
98
99`/home/Blinux/html/`这个目录下所有文件和文件夹打包为当前目录下的 `html.zip`
100
101```shell
102zip -q -r html.zip /home/Blinux/html
103```
104
105上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
106
107```shell
108zip -q -r html.zip html
109```
110
111比如现在我的html目录下,我操作的zip压缩命令是:
112
113```shell
114zip -q -r html.zip *
115```
116
117压缩 `example/basic/` 目录内容到 `basic.zip` 压缩包中 `-x` 指定排除目录,注意没有双引号将不起作用。
118
119```shell
120zip -r basic.zip example/basic/ -x "example/basic/node_modules/*" -x "example/basic/build/*" -x "example/basic/coverage/*"
121```
122
123上面压缩解压出来,内容存放在 `example/basic/`, 如果想存放到根目录,进入目录进行压缩,目前没有找到一个合适的参数来解决此问题。
124
125```
126cd example/basic/ && zip -r basic.zip . -x "node_modules/*" -x "build/*" -x "coverage/*"
127```
128
129压缩效率选择:
130
131```shell
132zip -9 # 1-9 faster->better
133```
134
135创建 `public_html` 目录下忽略所有文件和文件夹,排除包括文本 `backup` 的所有文件。
136
137```shell
138$ zip -r public_html.zip public_html -x *backup*
139```
140
141`httpdocs` 目录忽略 `.svn` 文件或 `git` 的文件和目录下创建所有文件的归档。
142
143```shell
144$ zip -r httpdocs.zip httpdocs --exclude *.svn* --exclude *.git*
145```
146
147`httpdocs` 目录忽略的所有文件,并与 `.log` 结尾的目录下创建所有文件的归档。
148
149```shell
150$ zip -r httpdocs.zip httpdocs --exclude "*.log"
151```
152
153### 问题解决
154
155CentOS7中命令找不到
156
157```shell
158-Bash: Unzip: Command Not Found
159```
160
161解决方法
162
163```shell
164yum install -y unzip zip
165```
166
167