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用得越大压缩的效果越好 当然用的内存就越多。我们能给定
19的选项他所用的内存算法如下。
压缩时
内存用量=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怎么样?racknerd商家最近促销三款美国便宜vps,最低只需要9.49美元,可以选择美国圣何塞、西雅图、纽约和芝加哥机房。RackNerd是一家成立于2019年的美国高性价比服务器商家,主要从事美国和荷兰数据中心的便宜vps、独立服务器销售!支持中文工单、支持支付宝和微信以及PayPal付款购买!点击直达:racknerd官方网站INTEL系列可选机房:加利福尼亚州圣何塞、芝加...
vollcloud怎么样?vollcloud LLC创立于2020年,是一家以互联网基础业务服务为主的 技术型企业,运营全球数据中心业务。VoLLcloud LLC针对新老用户推出全场年付产品7折促销优惠,共30个,机会难得,所有产品支持3日内无条件退款,同时提供产品免费体验。目前所有产品中,“镇店之宝”产品性价比高,适用大部分用户基础应用,卖的也是最好,同时,在这里感谢新老用户的支持和信任,我们...
pacificrack又追加了3款特价便宜vps搞促销,而且是直接7折优惠(一次性),低至年付7.2美元。这是本月第3波便宜vps了。熟悉pacificrack的知道机房是QN的洛杉矶,接入1Gbps带宽,KVM虚拟,纯SSD RAID10,自带一个IPv4。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款7折秒杀优惠码:R3UWUYF01T内存CPUSS...