Linux 中的解压缩命令:unzip

系统 Linux
今天我们主要介绍一下该命令的作用及用法。

unzip 命令往往用于解压缩 zip 文件,但它能做的不仅仅是如此。

在某些 Linux 发行版上,可能没有默认安装该命令,那需要先安装,可以使用包管理器,比如 Debian 系统中:

sudo

下面我们来看一下它的用法。

Linux 中的 unzip 命令

unzip 命令的语法很简单:

unzip [option] zip_file

如果不使用任何选项,那么它会解压整个给定的文件,看下面的例子:​

unzip webdesign.zipArchive:  webdesign.zipinflating: 339252-PAJF05-394.aiinflating: 339252-PAJF07-322.epsinflating: 339252-PALBTI-224.aiinflating: 339252-PALBTL-394.epsinflating: 339252-PALBTM-53.jpginflating: License free.txtinflating: License premium.txt

有时候,这可能并不是我们想要的。因为如果给定的压缩文件中的文件太多,那么解压后,当前目录中会充斥了大量的文件:​

ls339252-PAJF05-394.ai    339252-PALBTI-224.ai    339252-PALBTM-53.jpg  'License premium.txt'339252-PAJF07-322.eps   339252-PALBTL-394.eps  'License free.txt'

1,解压到某个目录

一般情况下,我们希望将文件解压到某个目录,然后目录通常是与 zip 文件同名。可以使用 -d 选项,指定将文件提取(压缩)到某个目标目录:

unzip

如果目标目录不存在,就会创建。但是不会创建嵌套的目录。

另外,也可以将目标目录(连同选项 -d)放在压缩文件后面,但并不是所有选项都可以放到命令后面。如下所示:

unzip

2,在不解压的情况下,查看压缩文件的内容

如果只想查看 zip  文件包中的内容,但是并不想解压它,可以使用 -l 选项,该选项可以让我们查看 zip 文件的内容:

unzip

在输出的文件列表中,还会现实文件的时间戳和大小(以字节为单位),如下所示:​

$ unzip -l webdesign.zip Archive:  webdesign.zipLength      Date    Time    Name---------  ---------- -----   ----205358  2023-01-18 23:14   339252-PAJF05-394.ai996906  2023-01-18 23:14   339252-PAJF07-322.eps213968  2023-01-20 00:00   339252-PALBTI-224.ai1005362  2023-01-20 00:00   339252-PALBTL-394.eps305531  2023-01-20 00:00   339252-PALBTM-53.jpg1462  2023-01-20 09:45   License free.txt1116  2023-01-20 09:45   License premium.txt---------                     -------2729703       

如果需要,可以使用 -v 选项来获得更多信息,如压缩大小、压缩比等。输出中的 CRC-32 是循环冗余检查。​

$ unzip -v webdesign.zip Archive:  webdesign.zipLength   Method    Size  Cmpr    Date    Time   CRC-32   Name--------  ------  ------- ---- ---------- ----- --------  ----205358  Defl:N   142097  31% 2023-01-18 23:14 792f2380  339252-PAJF05-394.ai996906  Defl:N   221228  78% 2023-01-18 23:14 440390d3  339252-PAJF07-322.eps213968  Defl:N   147568  31% 2023-01-20 00:00 cdb64dfc  339252-PALBTI-224.ai1005362  Defl:N   226727  77% 2023-01-20 00:00 aed3d97a  339252-PALBTL-394.eps305531  Defl:N   183363  40% 2023-01-20 00:00 e4ced90f  339252-PALBTM-53.jpg1462  Defl:N      728  50% 2023-01-20 09:45 0eb9e17b  License free.txt1116  Defl:N      558  50% 2023-01-20 09:45 165dd84e  License premium.txt--------          -------  ---                            -------2729703           922269  66%                            7 files

3,在不提示的情况下覆盖已有文件

如果在当前目录中,已经存在同名的文件,那么在解压的时候,会有提示“是否要覆盖当前文件”,可以使用 -o 选项,来跳过询问,强制覆盖:

unzip

4,不要覆盖任何文件

如果不希望覆盖现有文件,可以使用 -n 选项:

unzip

5,更新且在必要的时候创建文件

更新文件,与覆盖略有不同。当某些文件的时间戳比现有文件更新的时候,才会被覆盖。如果文件不存在,将会直接创建。这种情况下,需要使用 -u 选项:

unzip

6,更新现有文件,但是不创建新文件

这个例子与前一个略有不同。在本例中,如果有某些文件的时间戳更新,会覆盖这些文件,但是如果文件不存在,那么不会创建新文件。这种情况,可使用 -f 选项:

unzip

7,在安静模式下解压文件

在解压文件的时候,会在屏幕上现实已经解压的文件。但是当文件有几百个的时候...屏幕会一直出现滚动信息。

可以使用 -q 选项来选择安静模式,这种情况下,在解压的过程中屏幕不会有信息输出。

unzip

8,解压的时候,排除某些文件

unzip 命令,可以实现在解压的时候,排除某些文件,或者某些类型的文件:

unzip

比如,我想在解压的时候,排除 .eps 文件,如下:​

$ unzip webdesign.zip -x *.epsArchive:  webdesign.zipinflating: 339252-PAJF05-394.ai    inflating: 339252-PALBTI-224.ai    inflating: 339252-PALBTM-53.jpg   inflating: License free.txt        inflating: License premium.txt

以上例子是关于 unzip 命令的一些常用的,大家可以查看 man 手册来获取其更多的信息。

责任编辑:庞桂玉 来源: TIAP
相关推荐

2010-01-04 09:27:31

Linux压缩解压缩命令详解

2012-05-10 09:43:28

2021-02-22 07:58:52

Linux压缩解压

2018-09-14 16:18:26

Linux压缩文件应用程序

2010-06-24 09:29:02

Linux Bzip2

2011-07-27 16:26:42

iPhone 解压 gzip

2023-12-21 07:30:36

PythonZipfileTarfile

2016-11-17 22:02:13

Linux压缩及解压缩

2010-03-04 13:06:47

Linux压缩解压

2023-03-29 08:59:59

Go压缩包文档

2010-03-05 09:50:37

Ubuntu ligh

2009-10-21 09:10:52

VB.NET压缩

2011-08-15 18:14:58

ac中文man

2010-06-24 10:42:42

Bzip2压缩

2024-02-22 12:16:55

Python压缩数据

2011-08-15 14:07:53

Objective-C解压缩ZIP文件

2009-07-08 16:10:36

Servlet和JSPJSP页面

2009-10-20 15:39:20

Linux压缩

2024-01-04 12:47:00

Linux命令工具

2009-12-08 16:33:45

PHP unpack函
点赞
收藏

51CTO技术栈公众号