Linux常用命令-unzip

命令

unzip

描述

list, test and extract compressed files in a ZIP archive
zip解压工具

用法

1
unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Options:
-p 将文件内容提取到管道,即直接显示压缩文件内容
-f 刷新已存在的文件 freshen existing files, create none
-u 更新文件 update files, create if necessary
-v 显示详情
-x 排除文件
-n 不要覆盖已存在的文件
-o 直接覆盖已存在的文件,不发出提示
-j junk paths (do not make directories)
-U 对所有非ASCII码字符进行转义
-C 忽略大小写匹配文件名
-X 还原UID/GID信息
-K 保留setuid/setgid/tacky权限
-l 显示文件列表
-t 测试压缩文件
-z 显示压缩文件注释
-T 时间戳保存为最新版本
-d 解压文件到指定目录
-q 静默模式,-qq超级静默
-a 自动转换文本文件
-aa 将所有文件视为文本
-UU 忽略任何Unicode字段
-L 使(某些)名称小写
-hh 显示更多帮助

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
$ unzip -V
UnZip 6.00 of 20 April 2009, by Info-ZIP.

$ ls
a1 a1.zip a2 b1 b2 dir1/
$ zip a1.zip a1
adding: a1 (stored 0%)
# -l 查看压缩文件详情
$ unzip -l a1.zip
Archive: a1.zip
Length Date Time Name
--------- ---------- ----- ----
3 10-20-2021 23:54 a1
--------- -------
3 1 file
$ unzip -lv a1.zip
Archive: a1.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
3 Stored 3 0% 10-20-2021 23:54 2a67cbfd a1
-------- ------- --- -------
3 3 0% 1 file
# -p 直接显示压缩文件内容
$ unzip -p a1.zip
aa
$ more a1
aa
$ zip a.zip a1 a2
$ rm a1 a2
# -x 排除文件
$ unzip a.zip -x a2
Archive: a.zip
extracting: a1
$ ls
a1 a1.zip a.zip b1 b2 dir1/
# -n 不要覆盖已存在的文件
$ unzip -n a.zip
Archive: a.zip
extracting: a2
# -o 强制覆盖已存在的文件
$ echo cc > a1
$ unzip -o a.zip
Archive: a.zip
extracting: a1
extracting: a2
$ more a1
aa
# -t 测试压缩文件
$ unzip -t a.zip
Archive: a.zip
testing: a1 OK
testing: A1 OK
testing: a2 OK
testing: A2 OK
No errors detected in compressed data of a.zip.
# 解压zip包中的指定文件
$ unzip a.zip a1
Archive: a.zip
extracting: a1
# -C 忽略大小写匹配文件名
$ unzip -C a.zip a1
Archive: a.zip
replace a1? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
extracting: a1
extracting: A1
# -d 指定解压目录
$ unzip a.zip a2 -d /tmp/
Archive: a.zip
extracting: /tmp/a2
$ more /tmp/a2
aaa
# -q 不显示提示信息
$ unzip -q a.zip
$ ls
a1 A1 a2 A2 a.zip b1 b2 dir1/