压缩与解压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