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

简述

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

  • 简述
  • zip
    • 命令介绍
    • 命令选项
    • 使用范例
  • unzip
    • 命令介绍
    • 命令选项
    • 使用范例

zip

命令介绍

  • 命令名称
    zip
  • 基本语法
    zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path] [-n suffixes] [-t date] [-tt date] [zipfile [file ...]] [-xi list]
  • 功能描述
    打包和压缩文件

命令选项

选项 说明
-A 调整可执行的自动解压缩文件
[-b path] 指定暂时存放文件的目录
-c 为每个被压缩的文件加上注释
-d 从压缩文件内删除指定文件
-f 此选项的效果和指定 -u 选项类似但不仅更新既有文件如果某些文件原本不存在于压缩文件内使用此选项会一并将其加入压缩文件中
-F 尝试修复损坏的压缩文件
-g 将文件压缩后附加在既有的压缩文件之后而非另行建立新的压缩文件
-h 在线帮助
-j 只保存文件名称及其内容而不存放任何目录名称
-J 删除压缩文件前面不必要的数据
-k 使用 MS-DOS 兼容格式的文件名称
-l 压缩文件时把 LF 字符置换成 LF+CR 字符
-ll 压缩文件时把 LF+CR 字符置换成 LF 字符
-L 显示版权信息符
-m 将文件压缩并加入压缩文件后删除原始文件即把文件移到压缩文件中
[-n suffixes] 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设置为压缩时候的时间
-q 安静模式压缩时不显示命令的执行过程
-r 递归处理将指定目录下的所有子目录以及文件一并处理
-S 包含系统文件和隐藏文件
[-t date] 将压缩文件的最后修改日期设为指定的日期日期格式为mmddyyyy-x
-T 检查备份文件内的每个文件是否正确无误
-u 更换较新的文件到压缩文件内
-v 显示命令执行过程或版本信息
-V 保存 VMS 操作系统的文件属性
-w 在文件名称里加入版本编号此选项仅在 VMS 操作系统下有效
[-x list] 指定不要处理 .zip 压缩文件中的哪些文件
-X 不保存额外的文件属性
-y 直接保存符号连接而非该连接所指向的文件本参数仅在 UNIX 之类的系统下有效
-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
时间: 2024-10-28 15:53:40

Linux 命令(文件和目录管理 - zip/unzip)的相关文章

Linux的文件压缩——tar和zip命令

今天因为准备远程压缩个文件,结果用tar命令失败了好几次.看来命令还是常用才熟悉啊. tar命令: 简介:tar命令只是把目录打包成一个归档(文件),并不负责压缩.在tar命令中可以带参数调用gzip或bzip2压缩.因为gzip和bzip2只能压缩单个文件. 在linux下是不需要后缀名的,但通常tar归档后缀名为.tar,gzip压缩后的后缀名为.gz,bzip2压缩后的后缀名为.bz2. 命令用法: tar [参数]  [文件或目录] 1 #比如把x文件夹打包并用gzip压缩. 2 tar

RHCSA 系列(二): 如何进行文件和目录管理

在本篇中,我们将回顾一些系统管理员日常任务需要的技能. RHCSA: 运行文件以及进行文件夹管理 - 第二部分 创建.删除.复制和移动文件及目录 文件和目录管理是每一个系统管理员都应该掌握的必备技能.它包括了从头开始的创建.删除文本文件(每个程序的核心配置)以及目录(你用来组织文件和其它目录),以及识别已有文件的类型. touch 命令 不仅仅能用来创建空文件,还能用来更新已有文件的访问时间和修改时间. touch 命令示例 你可以使用 file [filename]来判断一个文件的类型 (在你

linux下文件和目录的颜色所代表含义是什么?

linux下文件和目录的颜色所代表含义是什么? 蓝色表示目录:绿色表示可执行文件:红色表示压缩文件:浅蓝色表示链接文件:灰色表示其它文件:红色闪烁表示链接的文件有问题了:黄色是设备文件,包括block, char, fifo.用dircolors -p看到缺省的颜色设置,包括各种颜色和"粗体",下划线,闪烁等定义 [root@localhost ~]# dircolors -p #&http://www.aliyun.com/zixun/aggregation/37954.ht

SQL Server on Linux的文件和目录结构

问题引入 "鸟儿啊,我记得你写过一篇<SQLServer On Linux Package List on CentOS>的文章,从这篇文章,我们很清楚的知道了SQL Server on Linux包含有哪些必要的包.那么,我们怎么知道SQL Server on Linux到底包含哪些重要的文件和目录结构呢?他们的作用是什么?". "的确,当我们在排错或者需要改变MSSQL Server on Linux配置的时候,我们需要对SQL Server的各个工作目录和文

详解Java的文件与目录管理以及输入输出相关操作_java

Java中文件与目录管理 目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息.通过调用 File 类提供的各种方法,能够创建.删除.重名名文件.判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等.不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,

Linux中文件权限目录权限的意义及权限对文件目录的意义_linux shell

linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

Linux 命令(文件和目录管理 - gzip/gunzip)

简述 和 zip 命令类似,gzip 用于文件的压缩,gzip 压缩后的文件扩展名位 .gz,gzip 默认压缩后会删除原文件.gunzip 用于解压经过 gzip 压缩过的文件. 简述 gzip 命令介绍 命令选项 使用范例 gunzip 命令介绍 命令选项 使用范例 gzip 命令介绍 命令名称 gzip 基本语法 gzip [OPTION]- [FILE]- 功能描述 压缩文件.压缩后的文件扩展名位 .gz,默认压缩后会删除原文件. 命令选项 选项 说明 -a --ascii 使用 ASC

Linux 命令(文件和目录管理 - pwd)

简述 目录是 Linux 的基本组成部分,目录管理包括目录的复制.删除.修改等操操作. 在 Linux 层次结构中,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称.环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录. 简述 命令介绍 命令选项 使用范例 命令介绍 命令名称 pwd 命令全称 Print Working Directory 基本语法 pwd [选项]- 功能描述 打印当前工作目录的完整文件名 命令选项 pwd 命令比较

Linux 命令(文件和目录管理 - cp)

简述 cp 命令用来复制文件或目录.当复制多个文件时,目标文件参数必须为已经存在的目录.cp 命令默认不能复制目录,复制目录必须使用 -R 选项. 简述 命令介绍 命令选项 使用范例 命令介绍 命令名称 cp 命令全称 copy 基本语法 cp [选项]- [-T] 源文件 目标文件 或:cp [选项]- 源文件- 目录 或:cp [选项]- -t 目录 源文件- 功能描述 将源文件复制至目标文件,或将多个源文件复制至目标目录. 命令选项 选项 说明 -a, --archive 等于-dR --