文件Linux常用的压缩及解压缩命令.

linux压缩命令  时间:2021-02-28  阅读:()

Linux常用的压缩及解压缩命令如表2-5所示。

表2-5Linux常用的压缩及解压缩命令说明

常用命令

简要中文说明

程式所在目录gzip

压缩成文件名为 gz的压缩文件也可用?d选项变成解压

/bingunzip

将gz压缩文件解压可用gzip加?d参数代替

/bintar

打包为 tar的打包文件或解开也可配合?z选项呼叫gzip进行gz文件的压缩或解压

/bincom press

压缩成文件名为 Z的压缩文件也可用?d选项变成解压

/usr/binunco mpr ess

将Z压缩文件解压可用com press加?d选项代替

/usr/binzip

打包并压缩成文件名为 zip的文件本身没有解压能力一定要用unzi p来解压才行

/usr/binunzip

将zip文件解压

/usr/binbz i p2

压缩成文件名为 bz2的压缩文件也可用?d选项变成解压

/binbunzi p2

将bz2压缩文件解压可用bzi p2加?d选项代替

/bingzip[-选项] [文件名]

压缩成文件名为 gz的压缩文件

如果你看到gz, tar gz的文件都是gzip程式压缩的杰作。gzip是GNU组织研发的一种压缩程式跟视窗系统上的ZIP不太相同稍后会介绍一个相同的。

我们先介绍压缩的方法。当我们有一个文件叫做big1 bmp 由于点阵图文件通常都非常大要用gzip压缩命令要怎么下呢

最简单的能这样gzipbig1 bmp

不过如果你希望他压出“最小的文件”那么就加一个-9选项gzip-9big1 bmp

当然 “最小的文件”的代价就是花最久的时间压缩如果你希望他在最快时间压缩好而不计较压缩的比例那就相反加一个-1 注意是数字不是小写英文l选项gzip-1 big1 bmp

而如果你没有加-1也没有加-9他的默认相当于-6。

另外常用的选项更有l -v压缩过程当中显示进度。l -r将子目录中的文件全部压缩。

至于他更有解压缩的选项我们刻意将他挪到下一个命令中gunzip再说明。

练习

1 gzip所指定要压缩的文件名能用通配符吗

2找一个大约三五个文件的子目录将子目录压缩。gunzip[-选项] [文件名gz]

将 gz压缩文件解压gunzip命令和gzip命令相对专门把gzip压缩的 gz文件解压缩。如果你有已压缩过的文件例如big1 gz这时就能用解压缩gunzipbig1 gz

这个命令也能用gzip 自己来完成效果完全相同gzip-dbig1gz

其实在有些版本的Linux上gunzi p是去调用gzip顺便帮你加上个-d选项罢了用链接文件做的 不过有些版本不是是个真的程式。不过无论gunzip到底是个实在的程式还是仅是个连接都不重要了。 因为gzip这个程式本身能负责压缩也能解压缩一物两用。 不见得每种压缩和解压缩程式都是这样。 所以如果你记得-d选项就能根本不用记gunzip这个命令了。gunzip甚至还能去解其他压缩程式如Compress或ZIP压缩出来的文件。不过我们不建议你这样做这样会让你自己非常乱。而且他自己也承认用他来解zip的文件并不是每一种情形都能完成。所以既然如此何必这样麻烦呢哪一种工具就固定做什么用不是比较有条理又好记吗gunzip有几个选项较常使用l -f当解压时如果遇见有同名的文件存在就直接覆盖不必再询问。l -r将子目录中的文件全部解压缩。l -v解压缩过程当中显示进度。

同样这些选项也能再加在gzip-d上效果相同。

练习

1如果你在练习gzip时压缩了整个子目录 目前再将他解压。

2你是否能查得出来系统中的gunzip是真正的程式还是链接文件tar[-选项] [打包文件名] [文件]

打包为 tar的打包文件或解开

如果你真的认真试过gzip或你有使用DOS,视窗系统的ARJ,ZIP一类程式的经验的话就会发觉gzip有一个致命的缺点他仅能压缩一个文件。即使针对子目录压缩他也是针对子目录里的个别文件压缩并没有把他们压成紧紧的一“包”。

于是在Li nu x上这个打“包”的任务习惯由tar程式来代劳。请注意 tar并不是压缩程式 因为他打包之后的大小跟原来相同大。所以他不是压缩程式而是打包程式。而我们习惯上会先打包产生一个tar文件再把这个包裹拿去压缩。 tar g z的文件名就是这么来的。

也有人觉的 tar g z这样的名称太长了其实浓缩为 tg z意思也是相同的。tar的选项高达53个。 你用ma n t ar看就知道了不过实用上没有那么多而且同样几个每天重复使用。因此我们直接举例tar -cf new1 tar my1*doc

把所有my1*doc的文件打包成一个new1 tar文件。其中 -c是产生新文件 -f是输出到默认的设备你能把他当做一定要加的选项就好。tar -rf new1 tar my2*docnew1 t ar是个已存在的打包文件了。我们再把my2*doc的所有文件也打包进去。 -r是再增加文件的意思。tar -uf new1 tar my18 doc

方才my1*doc已打包进去了不过其中的my18 doc后来又做了更改我们把新改过的文件再重新打包进去 -u是更新的意思。

说到这里如果你是用过ARJ程式的人可能会嫌他有点笨。 因为ARJ程式类似上述3个过程都只要用一个a选项就都能操作了不是吗如果你没用过ARJ就继续往下看。tar -tf new1 tar

列出来new1 tar中有哪些文件被打包在里面。 -t是列出的意思。这个选项非常像ARJ程式的l选项。tar -xf new1 tar

把new1 tar打包文件中的全部文件解出来 -x是解开。tar -xf new1 tar my2*doc

只把new1 tar打包文件中的所有my2*doc文件解出来 -x是解开。这个选项非常像ARJ程式的x选项。

你注意到了吗他也和ARJ程式非常像 自己就能负责打包也能负责解开无需另外一个解压的程式。而他和ARJ的差别再强调一次就是没有压缩能力

不过我能向gzip程式借就像便利店虽然没有面包房还是能代卖面包对消费者来说还是相同的嘛。 -z选项就是这个秘密进货管道tar -zcf new1 tar gz my1*doc

请注意这道命令和方才一道类似命令的不同之处。第一加了z选项他会向gzip借用压缩能力 第二注意产生出来的文件名是new1 tar gz两个过程一次完成

如果你想配合Compr ess程式后面会介绍压缩出另一种tar Z文件那么只要把-z选项改为-Z选项就能。tar -Zcf new1 tar Z my1*doc

最后我们再加一个选项-v就是打包兼压缩或解压的过程。 因此你最常看到的解压手续就是这样了因为Linux上最常见的软件包装文件就是 tar gz文件了tar -zxvf on ep ac kag e t ar g z

如果是tg z的文件名也是相同的 因为性质相同只是文件名简单一点而已tar -zxvf on ep ac kag e tg z

这个-zxvf的选项几乎能是固定的值得你背下来的。而这种文件当初是怎么生成的呢可能是这样你也能背起来 以后就方便自己制造 tar g z文件了tar -zcvf on ep ac kag e t ar g z**

或tar -zcvf on ep ac kag e tg z**

练习

1在Thiz Lin ux的/usr/shar e/pi xmaps/bac kg rounds/space里面有非常多太空的照片请你把他们打包成一个“太空包”。

2续上题请你把他们打包再压缩制成一个“太空压缩包”。co m p res s[-选项] [文件名]

压缩成文件名为 Z的压缩文件com press跟gzip非常近似是个压缩兼解压缩工具。如果你看到Z 、 tar Z的文件都是co mpress程式压缩的杰作。

我们先介绍压缩的方法。假设我们有一个字形文件叫做tai pei 24 pcf 字形文件通常都非常大要用co m press压缩命令要怎么下呢

最简单的是这样com press tai pei24 pcf

他就会产生一个tai pei 24 pcf Z的压缩文件。

另外常用的选项更有l -v压缩过程当中显示进度和比例。

至于他更有解压缩的选项我们刻意将他挪到下一个命令unco m press中再说明。

练习

1用gzip和用compress压缩同样一个文件哪一种的压缩效果比较好

2要把所有a* pcf的文件经过tar命令打包再经过com press压缩而变成一个afo nt tar Z的文件需要哪些命令u n co m p ress[-选项] [文件名Z]

将 Z压缩文件解压uncompr ess命令和compress命令相对专门把compress压缩出的 Z文件解压缩。如果你有已压缩过的文件例如one Z这时就能用uncompress one Z

也能用com press 自己来完成效果完全相同com press-d on e Z

目前大部分版本的Linux中 uncompress其实只是去调用compres s顺便帮你加上个-d选项罢了用链接文件做的并不是个真的程式。

由于com press这个程式本身能负责压缩也能解压缩一物两用。 不见得每种压缩和解压缩程式都是这样。 所以如果你记得-d选项那就能根本不用记uncompr ess命令了。unco mpr ess一般会用到的选项大概就一个

-v解压缩过程当中显示进度。

同样这些选项也能再加在com press-d上效果相同。

练习

1假设目前我们有一个one tar Z文件有人觉的他的格式太旧了想把他改成one tar gz再给别人你会替他下这些命令吗

2你能否把一些文件压缩成tar Z再自行解开zip[-选项] [文件名zip] [文件名]

打包并压缩成文件名为 zip的文件zip和gzip虽然只差一个字母不过用法差多了。zip所使用的格式其实和DOS和视窗系统上的 zip是完全相同的也就是说他无需经过打包和压缩两道手续就能产生兼有两种效用的“压缩文件包”。而且如果使用这种格式的话就能和 bmp, jpg, g if等文件相同 自由地通行于视窗系统和Linux之间多方便啊例如能在视窗系统中用WinZip程式解开或用WinZip压成zip直接给Lin ux用。

既然这么好为什么大家不常用他不要问我我也不知道。计算机的世界里常常存在一种怪现象好的东西不见得大家都用大家都在用的往往并不是最佳的选择或只是听前辈这样用他就跟着这样用。

总之如果你认为大家没在用的东西就是不好的那非常可能是错。到最后找人来分析为什么用某某那样东西好处为何 “普遍” 居然也可成为好处之一奇怪zip打包兼压缩的命令像是这样下达的他高达36个选项不过相信下面这些应该够你用了zipnew1 zip my1*doc

把所有my1*doc的文件打包成一个new1 zip文件。 new1 zip能省略扩展名简写成new1他会自行默认zip的扩展名。zip-dnew1zip my18 doc

如果当初my18doc是压缩在new1 zip中的一个文件 目前这条命令把他从压缩文件中抽走并删掉。 -d是删除的意思。zip-g new1 zip my32 doc

如果当初并没有把my32doc压在new1 zip里面 目前把他加进去。 -g选项是增加而不要重新产生的意思grow长大这个字母用得比较特别一点。zip-unew1 zip my2*doc

如果当初my2*doc都已压缩进new1 zip里面了不过后来my2*doc中有几个文件有更改又不想去找出到底是哪些文件更改了这条命令请系统自行帮助检查更改过的才更新到压缩否则就不必动。 -u是更新的意思。zip-rnew2zipmydir

如果mydir是个目录名称他会把整个目录的所有文件压缩成一个new2zip文件。 -r选项是压缩子目录的意思。

那么解压缩的选项呢抱歉 zip只能压缩没有兼职解压缩的功能。解压缩请用unzi p。

练习

1如果压缩了一个子目录而目前子目录里有些文件更新了但未改名要怎么办如果他更新了也改名了例如my0730 doc改为my0731 doc要怎么处理

2请把zi p压好的文件经过mo unt驱动器过程把他复制到视窗系统的驱动器然后用Wi nZi p程式解压试试看。最佳是压缩一些 b mp或j pg等文件到了视窗系统还能验证他是否还原了。unzip[-选项] [文件名zip] [文件名]

将 zip压缩文件解压zip和unzip这组程式真正是一对搭档。 zi p程式本身没有解压能力一定要用unzip程式来解压才行。 unzip是个真正的程式并不是zip的替身。

因为zip程式会把一大堆文件压缩在一起而解压时有可能这一大堆文件的其中一些已存在了如果都不存在 当然非常简单于是产生了一些错综复杂、纠葛缠绵的解压情况你要有心里准备例如我们要把这些已存在的文件通通无条件地覆盖过去呢还是只有把比他新才覆盖过去或无论新旧只有不存在的文件才压缩加上去还是每次遇见已有文件存在时都要询问我 由我来决定所谓已存在是用UNIX的判别法则还是DOS的判别法则也就是说如果压缩文件里有一个大写的MYFILE他和现有的小写myfi le算同名文件还是算不同名文件

更有 因为zip能把整个子目录压缩起来那么解压缩的时候又会遇见无可避免的抉择情况你是要解压回和原来目录相同的位置还是在现有目录上解压并产生目录

因为上面情况太复杂了所以我们只列一道范例命令然后其他都直接列出选项了unzip onepackage zip a*doc

把one pac kag e zi p里面凡是a*d oc的都解压出来。如果a*do c文件名没有输入就会把o ne pac kag e zi p全部解压。不过最佳配合下面的选项决定你遇见现有相同文件名时的8个处理决策

-f只解压更新已存在的文件其他文件不解压但更新时会一一询问。

-u解压更新已存在的文件并把不存在的文件也解压但更新时会一一询问。

-fo只解压更新已存在的文件其他文件不解压但不询问直接覆盖更新。

-uo解压更新已存在的文件并把不存在的文件也解压但不询问直接覆盖更新。

-o不论文件是新是旧一律从压缩文件中解压并直接覆盖。

-n只把不存在的文件解压 已存在的文件则无论新旧一律保留原状。

-C不计较大小写的不同视为相同文件名默认是视为不同。

-L解压时一律将文件名转为小写。

更有遇见有子目录时的处理决策

-j不管原来压缩时的目录为何均全部解开于现行目录。

-d后面接一个目录名称。能指定解压到该目录。

一个其他的常用选项

-l只列出压缩包里面有哪些文件而不真的解开压缩。

练习

1从视窗系统磁盘里找一个或临时用WinZip制作一个 zip压缩文件拿到Li nux用unzip命令解开。有必要在解压时一律转为小写吗

2如果我们在Lin ux中压缩了两个大小写不同但字母相同的文件到zip这个文件拿到视窗系统用Winzip程式解开时会怎样bzip2[-选项] [文件名]

压缩成文件名为 bz2的压缩文件bzip2是新一代的压缩程式不过仍然改不掉gzip的老毛病只能压缩一个文件要打包还得靠tar帮忙。所以你还是会看到tar bz2这种文件。bzip2引用的是一套称为Burrows-Wheeler bl oc ksorting的文字压缩演算法及有名的霍夫曼编码法H uff man codi ng所以名称为B字开头。这种压缩法在压缩的过程会用到称为bloc k的内存单位你能自定义这个bl oc k内存单位的大小 bloc k用得越大压缩的效果越好 当然用的内存就越多。我们能给定

19的选项他所用的内存算法如下。

压缩时

内存用量=400KB+(bloc k大小×7)bl oc k大小=选项×100 KB

解压时

内存用量=400KB+(bloc k大小×4)

解压时的bloc k大小已在压缩时决定了所以不用选项决定。所以压缩时能这样下达命令bzip2-9-kmyfi le doc

把myfi le doc命令压缩成最小的文件 -9选项其实是默认的。他会产生myfi le doc bz2文件。加上-k选项表示虽然产生了 myfi le doc bz2但仍要保留myfi le doc原文件这就是gzip程式所做不到的了。

练习

1请找到一个xxxxx tar g z文件把他改制成xxxxx tar bz2文件。

2 bzip2是否也像gzip或compress相同能用-d选项自兼解压缩的功能bunzip2[-选项] [文件名bz2]

将 bz2压缩文件解压bunzi p2命令和bzip命令相对专门把bzip压缩出的 bz2文件解压缩。如果你有已压缩过的文件例如myfi le bz2这时就能用bunzip2 myfi le bz2

也能用bzip2 自己来完成效果完全相同bzip2-d myfi lebz2

目前大部分版本的Linux中 bu nzip2其实只是去调用bzip2顺便帮你加上个-d选项罢了用链接文件做的并不是个真的程式。

由于bzip2本身能负责压缩也能解压缩一物两用不见得每种压缩和解压缩程式都是这样。 。所以如果你记得-d选项那就能根本不用记bunzi p2这个命令了。

但记得我们在bzip2命令时提过 bu nzip2/bzip2程式解压时所需的内存为

内存用量=400KB+(bloc k大小×4)

因为解压时的bl oc k大小已在压缩时决定了所以不用选项决定。不过我们有改动那个“×4”倍的机会。如果我们在解压时加了-s的选项他会这样去计算

内存用量=400KB+(bloc k大小×25)

非常显然 -s是smal l的意思他能节省一半内存用量。

表2-6所示为bzip2和bunzip2压缩和解压缩时的内存用量总表。

表2-6内存用量总表

压缩时的选项

压缩时用量

解压时用量

加了-s选项解压时用量

-1

1 100 KB

500 KB

350 KB

-2

1800 KB

900 KB

600 KB

-3

2500 KB

1300 KB

850 KB

-4

3200 KB

1700 KB

1 100 KB

-5

3900 KB

2100 KB

1350 KB

-6

4600 KB

2500 KB

1600 KB

-7

5400 KB

2900 KB

1850 KB

-8

6000 KB

3300 KB

2100 KB

-9

6700 KB

3700 KB

2350 KB

另外 bunzi p2一般常用到的选项如下

-v解压缩过程当中显示进度。

-k解压缩但保留原压缩文件。

同样这些选项也能再加在bz i p2-d上效果相同。

练习

因为tar并未附有连同 bz2文件解压的选项但附有连同 g z文件或Z文件解压的选项这样你会整个解开xxxxx tar bz2文件吗

RackNerd新上圣何塞、芝加哥、达拉斯、亚特兰大INTEL系列,$9.49/年

racknerd怎么样?racknerd商家最近促销三款美国便宜vps,最低只需要9.49美元,可以选择美国圣何塞、西雅图、纽约和芝加哥机房。RackNerd是一家成立于2019年的美国高性价比服务器商家,主要从事美国和荷兰数据中心的便宜vps、独立服务器销售!支持中文工单、支持支付宝和微信以及PayPal付款购买!点击直达:racknerd官方网站INTEL系列可选机房:加利福尼亚州圣何塞、芝加...

VoLLcloud7折月付$3,香港CMI云服务器原生IP解锁,香港VoLLcloud

vollcloud怎么样?vollcloud LLC创立于2020年,是一家以互联网基础业务服务为主的 技术型企业,运营全球数据中心业务。VoLLcloud LLC针对新老用户推出全场年付产品7折促销优惠,共30个,机会难得,所有产品支持3日内无条件退款,同时提供产品免费体验。目前所有产品中,“镇店之宝”产品性价比高,适用大部分用户基础应用,卖的也是最好,同时,在这里感谢新老用户的支持和信任,我们...

pacificrack:超级秒杀,VPS低至$7.2/年,美国洛杉矶VPS,1Gbps带宽

pacificrack又追加了3款特价便宜vps搞促销,而且是直接7折优惠(一次性),低至年付7.2美元。这是本月第3波便宜vps了。熟悉pacificrack的知道机房是QN的洛杉矶,接入1Gbps带宽,KVM虚拟,纯SSD RAID10,自带一个IPv4。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款7折秒杀优惠码:R3UWUYF01T内存CPUSS...

linux压缩命令为你推荐
快递打印如何快递打印快递单赵雨润星辰变电影是真的启动了吗?如何免费开通黄钻怎么免费开黄钻?天天酷跑刷积分教程葫芦侠3楼几十万的积分怎么刷天天酷跑积分怎么刷金山杀毒怎么样用金山毒霸杀毒好吗?吴晓波频道买粉《吴晓波频道》《罗辑思维》《专栏精粹》怎么评价?网站运营网站运营的工作做什么今日热点怎么删除今日热点自动弹出怎么卸载或屏蔽idc前线求电影敢死队电影里的歌曲!bt封杀北京禁用BT下载,是真的吗?为什么?
台湾服务器租用 godaddy主机 vultr美国与日本 kdata 流媒体服务器 美国仿牌空间 哈喽图床 好玩的桌面 浙江独立 卡巴斯基官方免费版 泉州电信 免费申请个人网站 厦门电信 环聊 google台湾 百度云空间 主机返佣 japanese50m咸熟 cx域名 hosts文件修改 更多