简述

zip/unzip 是 Linux 中广泛使用的压缩/解压缩程序,zip 命令用来将文件压缩为常用的 zip 格式(扩展名为 .zip);unzip 命令则用来解压缩 zip 文件。

zip

命令介绍

命令名称

zip

基本语法

zip [选项] [打包后的文件名] [打包的目录路径]

功能描述

打包和压缩文件

命令选项

选项

说明

-A

调整可执行的自动解压缩文件

-c

为每个被压缩的文件加上注释

-d

从压缩文件内删除指定文件

-F

尝试修复损坏的压缩文件

-h

在线帮助

-m

将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中

-n

不压缩具有特定字尾字符串的文件

-o

将压缩文件内的所有文件的最新变动时间设置为压缩时候的时间

-q

安静模式,压缩时不显示命令的执行过程

-r

递归处理,将指定目录下的所有子目录以及文件一并处理

-S

包含系统文件和隐藏文件

-t

将压缩文件的最后修改日期设为指定的日期,日期格式为:mmddyyyy-x

-T

检查备份文件内的每个文件是否正确无误

-v

显示命令执行过程或版本信息

-x

指定不要处理 .zip 压缩文件中的哪些文件

-z

替压缩文件加上注释

-

压缩效率是一个介于 1-9 的数值

使用范例

1.压缩文件

将文件 debug.log 压缩为 debug.zip:

[wang@localhost doc]$ zip debug.zip debug.log

adding: debug.log (deflated 98%)

[wang@localhost doc]$ ls -l debug.zip

-rw-rw-r--. 1 wang wang 8388 10月 8 15:37 debug.zip

2.压缩率为 8

[wang@localhost doc]$ zip debug2.zip -8 debug.log

adding: debug.log (deflated 98%)

[wang@localhost doc]$ ls -l debug2.zip

-rw-rw-r--. 1 wang wang 7747 10月 8 15:38 debug2.zip

3.压缩目录

选项 -r 表示递归压缩子目录下所有文件,将目录 c 压缩为 c.zip:

[wang@localhost doc]$ zip -r c.zip c

adding: c/ (stored 0%)

adding: c/hello.c (stored 0%)

adding: c/qt5_cadaques.pdf (deflated 4%)

adding: c/QmlBook-In-Chinese.pdf (deflated 21%)

adding: c/qwt-6.1.1.pdf (deflated 5%)

将目录 c 和文件 debug.log 压缩成为 cDebug.zip:

[wang@localhost doc]$ zip -r cDebug.zip c debug.log

adding: c/ (stored 0%)

adding: c/hello.c (stored 0%)

adding: c/qt5_cadaques.pdf (deflated 4%)

adding: c/QmlBook-In-Chinese.pdf (deflated 21%)

adding: c/qwt-6.1.1.pdf (deflated 5%)

adding: debug.log (deflated 98%)

4.从压缩文件内删除指定文件

# 查看 c.zip 中的内容

[wang@localhost doc]$ unzip -v c.zip

Archive: c.zip

Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 10-08-2016 15:19 00000000 c/

60 Stored 60 0% 09-29-2016 11:05 1c70977f c/hello.c

7484327 Defl:N 7156991 4% 12-16-2015 09:24 419f4101 c/qt5_cadaques.pdf

7283461 Defl:N 5778374 21% 12-14-2015 11:19 a2ef8f24 c/QmlBook-In-Chinese.pdf

2604948 Defl:N 2466270 5% 01-18-2016 19:06 6dae3792 c/qwt-6.1.1.pdf

-------- ------- --- -------

17372796 15401695 11% 5 files

# 删除 c.zip 中的文件 c/QmlBook-In-Chinese.pdf

[wang@localhost doc]$ zip -d c.zip c/QmlBook-In-Chinese.pdf

deleting: c/QmlBook-In-Chinese.pdf

# 再次查看 c.zip 中的内容

[wang@localhost doc]$ unzip -v c.zip

Archive: c.zip

Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 10-08-2016 15:19 00000000 c/

60 Stored 60 0% 09-29-2016 11:05 1c70977f c/hello.c

7484327 Defl:N 7156991 4% 12-16-2015 09:24 419f4101 c/qt5_cadaques.pdf

2604948 Defl:N 2466270 5% 01-18-2016 19:06 6dae3792 c/qwt-6.1.1.pdf

-------- ------- --- -------

10089335 9623321 5% 4 files

显然,使用 -d 选项删除指定文件后,c.zip 中的文件数从之前的 5 个变为 4 个。

5.向压缩文件中添加指定文件

使用 -m 选项将文件压缩并加入至压缩文件后,原始文件将被删除。

# 查看 c.zip 中的内容

[wang@localhost doc]$ unzip -v c.zip

Archive: c.zip

Length Method Size Cmpr Date Time CRC-32 Name

-------- ------ ------- ---- ---------- ----- -------- ----

0 Stored 0 0% 10-08-2016 15:19 00000000 c/

60 Stored 60 0% 09-29-2016 11:05 1c70977f c/hello.c

7484327 Defl:N 7156991 4% 12-16-2015 09:24 419f4101 c/qt5_cadaques.pdf

2604948 Defl:N 2466270 5% 01-18-2016 19:06 6dae3792 c/qwt-6.1.1.pdf

-------- ------- --- -------

10089335 9623321 5% 4 files

# 将文件 debug.log 压缩并加入至压缩文件 c.zip后,删除原始文件 debug.log

[wang@localhost doc]$ zip -m c.zip debug.log

adding: debug.log (deflated 98%)

[wang@localhost doc]$ unzip -v c.zip

Archive: c.zip

Length Method Size Cmpr Date Time CRC-32 Name

-------- ------ ------- ---- ---------- ----- -------- ----

0 Stored 0 0% 10-08-2016 15:19 00000000 c/

60 Stored 60 0% 09-29-2016 11:05 1c70977f c/hello.c

7484327 Defl:N 7156991 4% 12-16-2015 09:24 419f4101 c/qt5_cadaques.pdf

2604948 Defl:N 2466270 5% 01-18-2016 19:06 6dae3792 c/qwt-6.1.1.pdf

368640 Defl:N 8220 98% 09-30-2016 16:23 7c861caf debug.log

-------- ------- --- -------

10457975 9631541 8% 5 files

6.压缩文件时排除某个文件

# 查看目录树,包含两个文件

[wang@localhost doc]$ tree linux/

linux/

├── hello.sh

└── linux-program.pdf

0 directories, 2 files

# 压缩时,排除文件 linux/hello.sh

[wang@localhost doc]$ zip -r linux.zip linux -x linux/hello.sh

adding: linux/ (stored 0%)

adding: linux/linux-program.pdf (deflated 2%)

# 查看 linux.zip 中的内容

[wang@localhost doc]$ unzip -v linux.zip

Archive: linux.zip

Length Method Size Cmpr Date Time CRC-32 Name

-------- ------ ------- ---- ---------- ----- -------- ----

0 Stored 0 0% 10-08-2016 16:26 00000000 linux/

33921784 Defl:N 33208837 2% 06-07-2016 11:02 e968a493 linux/linux-program.pdf

-------- ------- --- -------

33921784 33208837 2% 2 files

unzip

命令介绍

命令名称

unzip

基本语法

unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) …] [-x xfile(s) …] [-d exdir]

功能描述

列出、测试、提取 zip 文件中的压缩文件

命令选项

选项

说明

-c

将解压缩的结果显示到屏幕上,并对字符做适当的转换

-f

更新现有文件

-l

显示压缩文件内所包含的文件

-p

与 -c 选项类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换

-t

检查压缩文件是否正确,但不解压

-u

与 -f 选项类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中

-v

执行时显示详细的信息,或查看压缩文件目录,但不解压。

-z

仅显示压缩文件的备注文字

-a

对文本文件进行必要的字符转换

-b

不要对文本文件进行字符转换

-C

压缩文件中的文件名称区分大小写

-j

不处理压缩文件中原有的目录路径

-L

将压缩文件中的全部文件名改为小写

-M

将输出结果送到 more 程序处理

-n

解压缩时不覆盖原有文件

-o

不必先询问用户,unzip 执行后覆盖原有文件

-q

执行时不显示任何信息

-s

将文件名中的空白字符转换为底线字符

-V

保留 VMS 的文件版本信息

-X

解压缩时同时回存文件原来的 UID/GID

file[.zip]

指定 .zip 压缩文件

[file(s) ...]

指定要处理 .zip 压缩文件中的哪些文件

[-x xfile(s) ...]

指定不要处理 .zip 压缩文件中的哪些文件

[-d exdir]

指定文件解压缩后所要存储的目录

-Z

unzip -Z 等于执行 zipinfo 指令

使用范例

1.将压缩文件解压缩至当前目录下

如果当前目录存在同名文件,会进行询问“是否替换?”。

[wang@localhost doc]$ unzip c.zip

Archive: c.zip

replace c/hello.c? [y]es, [n]o, [A]ll, [N]one, [r]ename: N

2.解压缩时不覆盖原有文件

[wang@localhost doc]$ unzip -n c.zip

Archive: c.zip

3..解压缩时覆盖原有文件

不必询问用户,unzip 执行后覆盖原有文件

[wang@localhost doc]$ unzip -o c.zip

Archive: c.zip

extracting: c/hello.c

inflating: c/qt5_cadaques.pdf

inflating: c/qwt-6.1.1.pdf

inflating: debug.log

4.将压缩文件解压缩至指定目录下

[wang@localhost doc]$ unzip -n c.zip -d /tmp/

Archive: c.zip

creating: /tmp/c/

extracting: /tmp/c/hello.c

inflating: /tmp/c/qt5_cadaques.pdf

inflating: /tmp/c/qwt-6.1.1.pdf

inflating: /tmp/debug.log

5.查看压缩文件目录(不解压)

[wang@localhost doc]$ unzip -v c.zip

Archive: c.zip

Length Method Size Cmpr Date Time CRC-32 Name

-------- ------ ------- ---- ---------- ----- -------- ----

0 Stored 0 0% 10-08-2016 15:19 00000000 c/

60 Stored 60 0% 09-29-2016 11:05 1c70977f c/hello.c

7484327 Defl:N 7156991 4% 12-16-2015 09:24 419f4101 c/qt5_cadaques.pdf

2604948 Defl:N 2466270 5% 01-18-2016 19:06 6dae3792 c/qwt-6.1.1.pdf

368640 Defl:N 8220 98% 09-30-2016 16:23 7c861caf debug.log

-------- ------- --- -------

10457975 9631541 8% 5 files

linux unzip 包括目录,Linux 命令(目录管理 - zip/unzip)相关推荐

  1. Linux 命令(文件和目录管理 - zip/unzip)

    简述 zip/unzip 是 Linux 中广泛使用的压缩/解压缩程序,zip 命令用来将文件压缩为常用的 zip 格式(扩展名为 .zip):unzip 命令则用来解压缩 zip 文件. | 版权声 ...

  2. 命令行管理 Linux服务器困难?别怕,今天介绍一款基于 Web 的Linux管理神器:Webmin

    对于任何 Linux 初学者来说,从命令行管理和管理 Linux 服务器都是非常困难的,在这种情况下,您可以使用 Webmin 从基于 Web 的界面管理您的 Linux 服务器. Webmin 是一 ...

  3. linux函数怎么判断目录是否存在,linux C之判断文件或目录是否存在 access函数

    http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html access():判断是否具有存取文件的权限 相关函数    stat,open,chmod, ...

  4. 【Linux系统管理】05 常用命令 06 vim编辑器

    一.命令的基本格式 1.1 命令的提示符 [root@localhost ~]# []:这是提示符的分隔符号,没有特殊含义. root:显示的是当前的登录用户,现在使用的是root用户登录. @:分隔 ...

  5. Linux下Crontab定时执行命令

    Linux下Crontab定时执行命令 目录 Crontab概述及安装 Crontab规则 常见例子 1. Crontab概述及安装 1. Crontab指令是Linux下执行定时任务的一个命令. 2 ...

  6. Linux创建磁盘并分区命令

    Linux创建磁盘并且分区命令 目录 1.首先创建磁盘 1.1 首先点击虚拟机,再点设置 1.2点击内存在点下面的磁盘添加 1.4 添加磁盘向导 2.创建磁盘分区 2.1 启动Linux,用超级管理员 ...

  7. linux 源码安装 zip/unzip

    linux 源码安装 zip/unzip 场景说明 Linux服务器,没有root权限 需要使用zip/unzip,但遗憾的是服务器没有安装 解决办法 自己用源码编译 步骤 下载zip/unzip的源 ...

  8. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  9. Linux基本命令(1)管理文件和目录的命令

    Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touc ...

  10. 第十九天:初识Linux+系统与设置命令+目录管理

    Linux 1 初识Linux 在前面的课程中,我们无论是开发.测试.部署.存储都在Windwos操作系统的环境中,从今天开始我们一起学习下Linux,Linux系统和Windows系统最大的区别就是 ...

最新文章

  1. HDU 4946 Area of Mushroom 凸包
  2. 问题 B: 小鱼的搭配购物(并查集+01背包)
  3. 鼓励自己最有效的20个方法
  4. java写的教育管理的项目_干货分享|推荐12款适合做Java后台管理系统的项目
  5. 调整地面材质_【C4DtoA 13】Arnold渲染器(材质七): Shadow Matte Shader
  6. mysql中的存储机制_Mysql的存储引擎
  7. python资料-(转)python资料汇总(建议收藏)零基础必看
  8. 全网首发:linux任务栏分组的研究
  9. matlab给图片滤波,matlab每日学习 图片滤波
  10. easy Connect连接成功,但是虚拟IP地址获取失败,而导致网页无法打开
  11. 微pe工具箱具体分区教程
  12. 【暗恋不可耻但无用】QQ空间爬虫-Python版(pyzone-crawler)
  13. xp怎么查看计算机配置,怎么查看xp系统的配置信息
  14. Angular 从入坑到挖坑 - 路由守卫连连看
  15. 计算机无法连接路由器上网,电脑连接路由器不能上网怎么办
  16. 双十一适合买什么,缓解失眠助眠好物推荐榜
  17. PacBio vs. Oxford Nanopore sequencing
  18. python全栈开发书籍推荐_python全栈开发学习 01
  19. 【经历分享 工作体会 推荐】那些“资质平平”的计算机系学生,现在怎么样了?
  20. AnyChat开发流程指南

热门文章

  1. 2022年熔化焊接与热切割题库
  2. Excel 输入内容自动生成条形码
  3. ASCII码与英文的显示原理
  4. Eclipse代码/目录虚线对齐设置
  5. html 粘贴 word文档,Word2019文档中粘贴文本的两种方式
  6. oracle查看redo文件,Oracle Redo文件恢复
  7. WebEx 播放 器 ,电脑有外音,耳机没声音
  8. 4个睡眠中的“小动作”,暴露了你的身体状况
  9. Android 垃圾分类APP(三)垃圾分类之语音输入
  10. Proxifier实现指定进程代理IP 雷电模拟器为例