zip命令_Linux zip命令:压缩和解压文件(.zip文件)

让我们回到2000年4月14日那天,就在美国密尔沃基的一家旅馆里,人门发现了一具尸体,经尸检,死者的死因是酗酒过量导致的死亡。死者被发现时,手里还拿着空酒瓶,死亡的前一刻应该还在不断地饮酒。

对于一座城市来说,类似这样的事件并不稀奇。但是,这一次却引起了计算机界的极度关注,人们在世界各地自发地发起纪念活动,哀悼一个重要生命的离去。

他是谁呢?他的名字叫菲利普·卡兹(Philip Katz),他是 Zip 压缩算法的发明人,全世界几乎每一台电脑中都运行着他的压缩程序,压缩后的文件后缀常以“.zip”结尾。这些 zip 结尾的文件大都有一个共同的特点,那就是在文件内容的开头部分都标有“PK”的字样,这是作者名字的首字母缩写。

那一年,菲利普·卡兹年仅 37 岁。

初识 zip 命令

和 gzip/bzip2 类似,zip 命令用于文件压缩,unzip 命令则用于解压缩。

我想把一个文件和一个文件夹一起压缩成一个压缩文件:

#我们将mynote.txt文件和soft文件夹一起压缩成zdata.zip文件[roc@roclinux ruanjian]$ zip -r zdata.zip mynote.txt soft/  adding: mynote.txt (deflated 91%)  adding: soft/ (stored 0%)  adding: soft/redis-2.6.16.tar.gz (deflated 0%)  adding: soft/go1.1.2.Linux-amd64.tar.gz (deflated 1%)  adding: soft/.abc (stored 0%)

从上面的用法可以看出,zip 支持对文件、文件夹进行压缩。-r选项表示递归参数中指定的文件夹。

zip 命令,与 gzip/bzip2 命令有一个明显的不同,那就是 zip 命令在压缩过程中,会保留原始文件,这一点要记住哦。

接下来的解压工作,同样简单易学,使用 unzip 就好了:

#解压zip文件到newdir文件夹中, 我们通过-d选项来指定解压缩的目标路径[roc@roclinux ruanjian]$ unzip -d newdir/ zdata.zipArchive:  zdata.zip  inflating: newdir/mynote.txt   creating: newdir/soft/  inflating: newdir/soft/redis-2.6.16.tar.gz  inflating: newdir/soft/go1.1.2.Linux-amd64.tar.gzextracting: newdir/soft/.abc

再介绍下 -v 选项和 -t 选项

假设有一个很大的压缩文件 large.zip,我不想解压缩,只想看看它里面有什么,这时就需要-v选项的协助:

[roc@roclinux ruanjian]$ unzip -v zdata.zipArchive:  zdata.zipLength   Method    Size  Cmpr    Date    Time   CRC-32   Name--------  ------  ------- ---- ---------- ----- --------  ----      96  Defl:N        9  91% 02-20-2016 16:49 b51bd543  mynote.txt       0  Stored        0   0% 02-18-2016 11:13 00000000  soft/  999579  Defl:N   999279   0% 02-17-2016 22:52 64e7f8d5  soft/redis-2.6.16.tar.gz41756805  Defl:N 41320991   1% 02-17-2016 22:52 fefe0b94  soft/go1.1.2.Linux-amd64.tar.gz       0  Stored        0   0% 02-18-2016 11:13 00000000  soft/.abc--------          -------  ---                            -------42756480         42320279   1%                            5 files

我下载了一个压缩文件 large.zip,想验证一下这个压缩文件是否下载完全了,-t选项就派上用场了。

[roc@roclinux ruanjian]$ unzip -t zdata.zipArchive:  zdata.zip    testing: mynote.txt               OK    testing: soft/                    OK    testing: soft/redis-2.6.16.tar.gz   OK    testing: soft/go1.1.2.Linux-amd64.tar.gz   OK    testing: soft/.abc                OKNo errors detected in compressed data of zdata.zip.

竟然能在 zip 文件中删除文件

zip 其实很博大精深,很多你想象不到的功能,它都具备,很多地方体贴至极。下面我们举一个例子,来证明给你看。

有时候我们的工程师在辛辛苦苦压缩好 zip 文件后,发现里面有几个文件并不需要压缩进去,多余的文件占用了不少的空间。如果我们解压后再压缩的话,不仅耗费 CPU 资源和磁盘空间,而且还要有专人跟进等待和操作。

遇到这类问题该怎么办?zip 早就帮你想到啦。zip 提供了-d选项,即 --delete 选项,可以让我们在已经压缩好的 zip 文件中删除某个特定文件。

#还记得我们在压缩时囊括了的mynote.txt吧, 现在把它从zip文件中清掉[roc@roclinux ruanjian]$ zip zdata.zip -d mynote.txtdeleting: mynote.txt #再看看, mynote.txt已经无影无踪了[roc@roclinux ruanjian]$ unzip -v zdata.zipArchive:  zdata.zipLength   Method    Size  Cmpr    Date    Time   CRC-32   Name--------  ------  ------- ---- ---------- ----- --------  ----       0  Stored        0   0% 02-18-2016 11:13 00000000  soft/  999579  Defl:N   999279   0% 02-17-2016 22:52 64e7f8d5  soft/redis-2.6.16.tar.gz41756805  Defl:N 41320991   1% 02-17-2016 22:52 fefe0b94  soft/go1.1.2.Linux-amd64.tar.gz       0  Stored        0   0% 02-18-2016 11:13 00000000  soft/.abc--------          -------  ---                            -------42756384         42320270   1%                            4 files

这个用法有时候会事半功倍,比如在备份大规模数据或文件时,可以节省很多压缩和解压缩的时间。时间不是挤出来的,而是省出来的。

好啦,恭喜大家,zip 学习完了,该命令其实不难,赶快去实践中练习吧!

(0)

相关推荐

  • Linux高级命令

    文章目录 1.重定向 2.查看文件内容命令 2.1 cat查看小文件 2.2 more分屏查看大文件 2.3 管道(|) 3.链接命令 3.1 软链接 3.2 硬链接 4.文本搜索命令 5.查找文件命 ...

  • linux命令统计

    序号命令中文解释单个命令执行1tty查看当前所在的终端设备标识符tty2logout登出.注销用户logout3exit退出当前终端exit4ifconfig查看计算机的网卡配置信息/查看网络接口的状 ...

  • (办公)记事本_linux压缩命令

    参考谷粒学院的linux视频教程:http://www.gulixueyuan.com/course/300/task/7091/show 在Linux中可以识别的常见的压缩格式有十几种,比如&quo ...

  • linux常用命令——学习记录

    touch创建文件 touch 1.txt 2.txt mkdir创建文件夹 mkdir A/B/C/D -p clear清空屏幕 查看命令解释 man ls 重定向 > 代表删除后重新写入 & ...

  • 【Linux】基础常用操作之二

    文章目录 一.压缩和解压命令 1) `tar`[格式 .tar.gz] 2)`zip`和`unzip`[格式 .zip] 二.文件查找 1)`find`查找文件 2)`grep`查找文件内容 3)`w ...

  • 项目二 任务7-8

    任务七 管理rpm软件包与压缩包 [子任务一]管理rpm软件包 第1步:查询rpm软件是否已经安装 在安装一个软件之前,往往需要先确认该软件是否已经安装.通过[rpm -q 软件包名]命令查询或在参数 ...

  • bzip2命令_Linux bzip2命令:压缩和解压文件(.bz2文件)

    有时候你会发现并不是所有的 Linux 压缩包都是以 .tar.gz 为后缀的,有些压缩包的后缀是 .tar.bz2.这个 .tar.bz2 又是什么呢?它就是本文的主角:bzip2 压缩工具. 有了 ...

  • gzip命令_Linux gzip命令:压缩和解压文件(.gz文件)

    压缩技能,是 Linux 工程师的必修课,它对提升数据传输效率.降低传输带宽.管理备份数据都有着重要的作用. 而在众多的压缩工具中,gzip 算是在开源界里最常用的一款了.下面,我们就来学习 gzip ...

  • sed命令_Linux sed命令:替换、删除、更新文件中的内容

    sed 是 stream editor 的缩写,中文称之为"流编辑器". sed 命令是一个面向行处理的工具,它以"行"为处理单位,针对每一行进行处理,处理后的 ...

  • echo命令_Linux echo命令:显示文字并给文字添加颜色

    相信绝大多数程序员人生中的第一个程序都是"Hello,world",而在 Linux Shell 中,这个程序是由 echo 命令来完成的.当你需要在屏幕上显示一些提示信息时,你就 ...

  • Vim命令_Linux Vim命令:替换文本内容

    在讲技术之前,有必要给大家介绍一下 Vi 和 Vim 的发展史,从而更全面地了解 Vi 和 Vim. Vi 的历史非常悠久,可以追溯到 1976年,那时,一个叫作 Bill Joy 的美国兄弟编写了一 ...

  • paste命令_Linux paste命令:合并(拼接)文件

    paste 的拼接原理是什么?这个很简单,和 cut 的原理几乎一样,就是将几个文件的相应行用制表符(Tab)连接起来,并输出到标准输出. 我们来看 paste 最简单的使用方法: #第一个文件, 含 ...

  • split命令_Linux split命令:切割(拆分)文件

    15 分钟之后,我要去朋友家聚会.我打算从我的台式机上把一部 700MB 大小的美国大片拷贝出来,带到朋友家去看,可是我的两个优盘都只有 512MB,这让我如何是好? 别急,用 10 分钟赶快来认识一 ...

  • wc命令_Linux wc命令:计算单个文件中的字数、单词数和字节数

    本文的内容是 Linux 的 wc 命令,这个名字很好记,因为什么,你懂的,对,就是 word count,和我想的一样! 这个命令的功能也同样很好记,因为它功能很有限.wc 命令的主要作用就是计算一 ...

  • cut命令_Linux cut命令:剪切文件中的数据

    正如其名,cut 小能手的专长就是"剪".具体来说,就是在文件中负责剪切数据用的.cut 是以每一行为一个处理对象的,这种机制和 sed 命令一样. 为了让大家对 cut 有一个初 ...