计算机网络/计算机科学与应用/系统/运维/开发

Linux 【zip/unzip】 压缩与解压

压缩与解压zip/unzip命令

将一般的文件或目录进行压缩或者解压  默认生成以.zip为后缀的压缩包 zip命令类似于windows中的winzip压缩命令

#  zip [选项] 压缩文件名 需要压缩的文档列表

#  unzip [选项] 压缩文件名


zip命令选项:

-r 递归压缩 将指定目录下的所有文件以及子目录全部压缩
-d 从压缩文件中删除指定的文件
-i "文件列表" 只压缩文件列表中的文件
-x "文件列表" 压缩时排除文件列表中指定文件
-u 更新文件到压缩文件中
-m 将文件加入压缩文件压缩后,删除原始文件 即把文件移到压缩文件中
-F  尝试修复损坏的压缩文件
-T  检查压缩文件内的每个文件是否正确无误
-压缩级别 压缩级别为1-9之间的一个数字


unzip命令选项:

-x "文件列表" 解压文件 但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小,文件名和压缩比等 并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件 并且不要求用户确认
-d 目录名 : 把压缩文件解压到指定目录下


举例1 压缩目录下所有文件:

>  将/etc目录下的所有文件以及目录进行压缩 设置压缩级别为最高 保存到文件/opt/etc.zip

#  zip -9r /opt/etc.zip   /etc


zip 压缩命令 说明:

-9 压缩级别最高级  
r  表示递归压缩,压缩目录下所有文件以及子目录所有文件
/opt/etc.zip 表示压缩名以及存放地址
/etc 表示 需要压缩的文件目录或文件

[root@localhost tmp]# zip -9r /tmp/tmp.zip /tmp
  adding: tmp/ (stored 0%)
  adding: tmp/1-3.jpg (deflated 2%)
[root@localhost tmp]# ls
1-3.jpg  tmp.zip

举例2 压缩目录中除了某些文件:

> 将/var 目录中所有文件以及子目录压缩,除了"*.log"文件之外 将压缩文件保存到/opt目录下

# zip -r /opt/var.zip /var -x "*.log"


说明:

zip 压缩命令

-r 递归压缩

/opt/var.zip 表示压缩名以及存放地址

/var 表示 需要压缩的文件目录或文件

-x "*.log" 表示 排除列表中的制定文件


举例3 删除压缩包中指定文件:

> 将/opt/etc.zip 中的/opt/passwd 文件从压缩包中删除
# zip /opt/etc.zip  -d etc/passwd

说明:

zip 压缩命令

/opt/etc.zip 表示压缩名以及存放地址

-d 表示从压缩文件中删除指定文件

etc/passwd 表示要删除的文件


>将tmp目录下tmp.zip压缩包 中 删除1-3.jpg文件

[root@localhost tmp]# zip /tmp/tmp.zip -d  tmp/1-3.jpg
deleting: tmp/1-3.jpg

举例4 将修改后的文件更新到压缩包中: 

> 修改了/etc/inittab文件 希望把更改信息更新到/opt/etc.zip包中

# zip -u /opt/etc.zip  /etc/inittab

如果/etc目录中下很多文件进行了修改或增加了很多文件  就需要把/etc目录下

的全部信息更新到/opt/etc.zip 文件

# zip -u /opt/etc.zip   /etc/*  或者
# zip -ru /opt/etc.zip  /etc

1.现在tmp目录下1.txt文件中写入文件

[root@localhost tmp]# cat 1.txt 
11111
[root@localhost tmp]# ls
1-3.jpg  1.txt  a


2.压缩文件:

将/tmp目录下所有文件及子目录压缩为tmp.zip并存放在/tmp目录下

[root@localhost tmp]# zip -r /tmp/tmp.zip /tmp
  adding: tmp/ (stored 0%)
  adding: tmp/a/ (stored 0%)
  adding: tmp/1-3.jpg (deflated 2%)
  adding: tmp/1.txt (stored 0%)
[root@localhost tmp]# ls
1-3.jpg  1.txt  a  tmp.zip


3.修改1.txt文件

[root@localhost tmp]# vim 1.txt 
[root@localhost tmp]# cat 1.txt 
11111
22222


4.将修改后的1.txt更新到tmp.zip压缩包中

[root@localhost tmp]# zip -u /tmp/tmp.zip /tmp/1.txt 
updating: tmp/1.txt (deflated 17%)
[root@localhost tmp]# ls
1-3.jpg  1.txt  a  tmp.zip


5.解压tmp.zp压缩包 查看1.txt是否被更新

unzip tmp.zip 
[root@localhost tmp]# cat 1.txt 
11111
22222


举例5:将/opt/etc.zip 压缩文件全部解压到/etc目录下 除了/etc/inittab文件 并且

在解压过程中出现相同的文件就直接进行覆盖 不要求用户确认 

# unzip  -o /opt/etc.zip  -x  etc/inittab -d /et

zip unzip

无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你,你抬头自卑,低头自得,唯有平视,才能看见真实的自己。

评论

^