0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

unzip命令的作用及用法

CHANBAEK 来源:TIAP 作者: 刘光录 2023-01-30 15:57 次阅读

unzip 命令往往用于解压缩 zip 文件,但它能做的不仅仅是如此。 今天我们主要介绍一下该命令的作用及用法。

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

sudo apt install unzip

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

Linux 中的 unzip 命令

unzip 命令的语法很简单:

unzip [option] zip_file

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

unzip webdesign.zip 
Archive:  webdesign.zip
  inflating: 339252-PAJF05-394.ai    
  inflating: 339252-PAJF07-322.eps   
  inflating: 339252-PALBTI-224.ai    
  inflating: 339252-PALBTL-394.eps   
  inflating: 339252-PALBTM-53.jpg    
  inflating: License free.txt        
  inflating: License premium.txt

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

ls
 339252-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'      webdesign.zip

1,解压到某个目录

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

unzip -d target_directory zip_file

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

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

unzip zip_file -d target_directory

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

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

unzip -l zip_file

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

$ unzip -l webdesign.zip 
Archive:  webdesign.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   205358  2023-01-18 23:14   339252-PAJF05-394.ai
   996906  2023-01-18 23:14   339252-PAJF07-322.eps
   213968  2023-01-20 00:00   339252-PALBTI-224.ai
  1005362  2023-01-20 00:00   339252-PALBTL-394.eps
   305531  2023-01-20 00:00   339252-PALBTM-53.jpg
     1462  2023-01-20 09:45   License free.txt
     1116  2023-01-20 09:45   License premium.txt
---------                     -------
  2729703

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

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

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

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

unzip -o -d target_directory zip_file

4,不要覆盖任何文件

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

unzip -n -d target_directory zip_file

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

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

unzip -u -d target_directory zip_file

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

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

unzip -f -d target_directory zip_file

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

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

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

unzip -q -d target_directory zip_file

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

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

unzip zip_file -x file_to_exclude

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11303

    浏览量

    209456
  • Zip
    Zip
    +关注

    关注

    0

    文章

    17

    浏览量

    8639
  • 文件
    +关注

    关注

    1

    文章

    566

    浏览量

    24737
  • 命令
    +关注

    关注

    5

    文章

    684

    浏览量

    22021
收藏 人收藏

    评论

    相关推荐

    掌握find命令的这几种用法,就没有找不到的文件!

    今天浩道跟大家分享linux下关于find命令的几种经典用法,让你在linux茫茫的文件海洋中可以找出任何想要的文件!
    发表于 12-06 14:19 816次阅读

    at命令用法

    at命令用法At列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。at [\\
    发表于 07-01 00:27

    linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令。 comm命令功能:选择或拒绝两个已排序的
    发表于 07-04 08:22

    AT命令集详解

    对AT命令的介绍,特别是用法的介绍很到位,是AT命令的入门文章
    发表于 10-09 17:04 13次下载

    VirtualBox 的命令用法

    VBoxManage --help 命令,你可以获得 VBoxManage 的完整用法。本文并不打算解释其中的每一个选项,仅给出创建一个虚拟机的必要步骤。如果你感兴趣,不妨亲自去探索 VBoxManage 的其他用法
    发表于 04-02 14:36 1387次阅读

    各种Shell命令用法作用

    【前言】通过排查挖矿病毒的一次“有趣”经历,本文不仅展示了各种 Shell 命令用法作用,也能加深读者对Linux 进程和文件系统的理解。 同时在本文中,还出现了各种不同的工具类网站,相信对于
    的头像 发表于 01-11 10:47 2388次阅读

    命令行工具Kubectl的别样用法

      kubectl 是 K8s 官方附带的命令行工具,可以方便的操作 K8s 集群。这篇文章主要介绍一些 kubectl 的别样用法,希望读者有一定基础的 K8s 使用经验。   有一篇文章也介绍了
    的头像 发表于 10-12 09:31 1880次阅读

    Ping命令的7个基础用法

    IT行业中ping命令经常被用到,今天整理了一下关于网络基础知识中的网络命令ping命令在项目中是使用频率最高的,一般我们用的都是它的基本功能,今天和大家来详细看下Ping命令的7个基
    的头像 发表于 10-12 09:16 3961次阅读

    模拟初始状态相关的.ic和.save命令用法

    .step 和 .meas 命令用法。本文将继续探讨 LTspice 仿真命令,介绍 .ic 和 .save 命令用法,在评估开关电源时,它
    的头像 发表于 10-26 10:52 1517次阅读

    Linux系统维护命令用法

    Linux有很多命令,每个命令基本可以用一篇文章介绍,本文仅简单总结一些常用系统维护命令用法
    的头像 发表于 04-17 14:57 1052次阅读
    Linux系统维护<b class='flag-5'>命令</b>的<b class='flag-5'>用法</b>

    一款运行于windows上的linux命令神器-Cmder

    Cmder是一款Windows的命令行工具,用起来和Linux的命令一样顺畅。可以使用大量的Linux 命令,比如 grep, curl,vim, grep, tar, unzip,
    的头像 发表于 05-05 10:30 1892次阅读
    一款运行于windows上的linux<b class='flag-5'>命令</b>神器-Cmder

    nmcli命令的一些常用选项和用法

    以下是nmcli命令的一些常用选项和用法: connection show -- 显示所有网络连接的详细信息。 connection up --启动网络连接。 connection down -- 停止网络连接。
    发表于 10-08 11:15 1660次阅读
    nmcli<b class='flag-5'>命令</b>的一些常用选项和<b class='flag-5'>用法</b>

    linux常用命令用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux的常用命令及其用法对于操作系统的管理和开发都至关重要。本文将详尽、详实、细致地介绍Linux常用命令及其
    的头像 发表于 11-17 09:47 668次阅读

    总结linux命令行的主要用法

    Linux命令行是一种在Linux操作系统中通过文本界面来执行指令和管理系统的方式。它提供了丰富的功能和灵活性,帮助用户完成各种任务。本文将详细介绍Linux命令行的主要用法,包括常见命令
    的头像 发表于 11-17 10:19 670次阅读

    Linux lsof命令的基本用法

    在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本
    的头像 发表于 10-23 11:52 259次阅读
    Linux lsof<b class='flag-5'>命令</b>的基本<b class='flag-5'>用法</b>