Linux常用的压缩及解压缩命令._第1页
Linux常用的压缩及解压缩命令._第2页
Linux常用的压缩及解压缩命令._第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux 常用的压缩及解压缩命令如表 2-5 所示。表2-5 Linux 常用的压缩及解压缩命令说明常用命令简要中文说明程式所在目录gzip压缩成文件名为 .gz 的压缩文件(也可用 ?d 选项变成解压)/bingunzip将 .gz 压缩文件解压(可用 gzip 加 ?d 参数代替)/bintar打包为 .tar 的打包文件或解开(也可配合 ?z 选项呼叫 gzip 进行 .gz 文件的压缩或解压)/bincompress压缩成文件名为 .Z 的压缩文件(也可用 ?d 选项变成解压)/usr/binuncompress将 .Z 压缩文件解压(可用 compress 加 ?d 选项代替)/u

2、sr/binzip打包并压缩成文件名为 .zip 的文件(本身没有解压能力,一定要用 unzip 来解压才行)/usr/binunzip将 .zip 文件解压/usr/binbzip2压缩成文件名为 .bz2 的压缩文件(也可用 ?d 选项变成解压)/binbunzip2将 .bz2 压缩文件解压(可用 bzip2 加 ?d 选项代替)/bingzip - 选项 文件名压缩成文件名为 .gz 的压缩文件如果你看到 .gz, .tar.gz 的文件,都是 gzip 程式压缩的杰作。gzip 是 GNU 组织研发的一种压缩程式,跟 视窗系统 上的 ZIP 不太相同(稍后会介绍一个相同的) 。 我们

3、先介绍压缩的方法。当我们有一个文件叫做 big1.bmp ,由于点阵图文件通常都非常大,要用 gzip 压缩,命令要怎么下呢? 最简单的能这样:gzip big1.bmp不过如果你希望他压出 “最小的文件 ”,那么就加一个 -9 选项:gzip -9 big1.bmp当然,“最小的文件 ”的代价,就是花最久的时间压缩,如果你希望他在最快时间压缩好,而不计较压缩的比例,那就相反,加一个 -1 (注意,是数字,不 是小写英文l)选项:gzip -1 big1.bmp而如果你没有加 -1 也没有加 -9,他的默认相当于 -6。另外常用的选项更有:l -v 压缩过程当中显示进度。l -r 将子目录中的

4、文件全部压缩。至于他更有解压缩的选项,我们刻意将他挪到下一个命令中 gunzip 再说明。练习:(1 )gzip 所指定要压缩的文件名,能用通配符吗?(2)找一个大约三五个文件的子目录,将子目录压缩。gunzip - 选项 文件名 .gz将 .gz 压缩文件解压gunzip 命令和 gzip 命令相对,专门把 gzip 压缩的 .gz 文件解压缩。如果你有已压缩过的文件,例如big1.gz ,这时就能用解压缩:gunzip big1.gz这个命令也能用 gzip 自己来完成,效果完全相同:gzip -d big1.gz其实在有些版本的Linux上,gunzip是去调用gzip,顺便帮你加上个-

5、d选项罢了(用链接文件做的)!不过有些版本不是,是个真的程式。不过无论gunzip 到底是个实在的程式,还是仅是个连接,都不重要了。因为 gzip 这个程式,本身能负责压缩,也能解压缩,一物两用。 (不见得每种压缩和解压缩程式都是这 样。)所以,如果你记得 -d 选项,就能根本不用记 gunzip 这个命令了。gunzip 甚至还能去解其他压缩程式如 Compress 或 ZIP 压缩出来的文件。不过我们不建议你这样做,这样会让你自己非常乱。而且他自己也承认,用他 来解 zip 的文件并不是每一种情形都能完成。所以既然如此,何必这样麻烦呢?哪一种工具就固定做什么用,不是比较有条理又好记吗?gu

6、nzip 有几个选项较常使用:l -f 当解压时如果遇见有同名的文件存在,就直接覆盖,不必再询问。l -r 将子目录中的文件全部解压缩。l -v 解压缩过程当中显示进度。同样,这些选项也能再加在 gzip -d 上,效果相同。练习:(1)如果你在练习 gzip 时压缩了整个子目录,目前再将他解压。(2)你是否能查得出来系统中的 gunzip 是真正的程式,还是链接文件?tar -选项 打包文件名 文件打包为 .tar 的打包文件或解开如果你真的认真试过gzip,或你有使用DOS,视窗系统的ARJ, ZIP 一类程式的经验的话,就会发觉 gzip有一个致命的缺点:他仅能压缩一个文件。即 使针对子

7、目录压缩,他也是针对子目录里的个别文件压缩,并没有把他们压成紧紧的一 “包”。于是在 Linux 上,这个打 “包”的任务习惯由 tar 程式来代劳。请注意, tar 并不是压缩程式,因为他打包之后的大小跟原来相同大。所以他不是压缩程式, 而是打包程式。而我们习惯上会先打包,产生一个 .tar 文件,再把这个包裹拿去压缩。 .tar.gz 的文件名就是这么来的。也有人觉的 .tar.gz 这样的名称太长了,其实浓缩为 .tgz ,意思也是相同的。tar的选项高达53个。(你用man tar看就知道了)不过实用上没有那么多,而且同样几个每天重复使用。因此我们直接举例:tar -cf new1.t

8、ar my1*.doc把所有 my1*.doc 的文件打包成一个 new1.tar 文件。其中, -c 是产生新文件; -f 是输出到默认的设备,你能把他当做一定要加的选项就好。tar -rf new1.tar my2*.docnew1.tar 是个已存在的打包文件了。我们再把 my2*.doc 的所有文件也打包进去。 -r 是再增加文件的意思。tar -uf new1.tar my18.doc方才 my1*.doc 已打包进去了,不过其中的 my18.doc 后来又做了更改,我们把新改过的文件再重新打包进去, -u 是更新的意思。说到这里,如果你是用过 ARJ 程式的人可能会嫌他有点笨。因为

9、 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 程式非常像,自己就能负责打包

10、,也能负责解开,无需另外一个解压的程式。而他和 ARJ 的差别再强调一次,就是没有压缩 能力!不过,我能向 gzip 程式借!就像便利店虽然没有面包房,还是能代卖面包!对消费者来说,还是相同的嘛。 -z 选项就是这个秘密进货管道!请注意这道命令和方才一道类似命令的不同之处。第一,加了 z 选项,他会向 gzip 借用压缩能力;第二,注意产生出来的文件名是 ,两个 过程,一次完成!如果你想配合 Compress 程式(后面会介绍) ,压缩出另一种 .tar.Z 文件,那么只要把 -z 选项改为 -Z 选项就能。最后,我们再加一个选项-v,就是打包兼压缩或解压的过程。因此,你最常看到的解压手续就是

11、这样了(因为 Linux上最常见的软件包装文件就是.tar.gz 文件了):如果是 .tgz 的文件名也是相同的,因为性质相同,只是文件名简单一点而已:tar -zxvf onepackage.tgz这个 -zxvf 的选项几乎能是固定的,值得你背下来的。而这种文件当初是怎么生成的呢?可能是这样(你也能背起来,以后就方便自己制造.tar.gz 文件了):或tar -zcvf onepackage.tgz *.*练习:(1)在 Thiz Linux 的 /usr/share/pixmaps/backgrounds/space 里面有非常多太空的照片,请你把他们打包成一个 “太空包”。( 2 )续

12、上题,请你把他们打包再压缩,制成一个 “太空压缩包 ”。compress - 选项 文件名 压缩成文件名为 .Z 的压缩文件compress 跟 gzip 非常近似,是个压缩兼解压缩工具。如果你看到 .Z 、.tar.Z 的文件,都是 compress 程式压缩的杰作。我们先介绍压缩的方法。假设我们有一个字形文件叫做 taipei24.pcf ,字形文件通常都非常大,要用 compress 压缩,命令要怎么下呢?最简单的是这样:compress taipei24.pcf他就会产生一个 的压缩文件。另外常用的选项更有:l -v 压缩过程当中显示进度和比例。至于他更有解压缩的选项,我们刻意将他挪到

13、下一个命令 uncompress 中再说明。练习:(1)用 gzip 和用 compress 压缩同样一个文件,哪一种的压缩效果比较好?( 2 )要把所有 a*.pcf 的文件经过 tar 命令打包,再经过 compress 压缩而变成一个 的文件,需要哪些命令?uncompress - 选项 文件名 .Z将 .Z 压缩文件解压uncompress 命令和 compress 命令相对,专门把 compress 压缩出的 .Z 文件解压缩。如果你有已压缩过的文件,例如 one.Z ,这时就能用 uncompress one.Z也能用 compress 自己来完成,效果完全相同:compress

14、-d one.Z目前大部分版本的 Linux 中, uncompress 其实只是去调用 compress ,顺便帮你加上个 -d 选项罢了(用链接文件做的) ,并不是个真的程式。由于 compress 这个程式本身能负责压缩,也能解压缩,一物两用。 (不见得每种压缩和解压缩程式都是这样。 )所以,如果你记得 -d 选项,那就能根本 不用记 uncompress 命令了。uncompress 一般会用到的选项大概就一个:-v 解压缩过程当中显示进度。同样,这些选项也能再加在 compress -d 上,效果相同。练习:(1 )假设目前我们有一个 文件,有人觉的他的格式太旧了,想把他改成 再给别

15、人,你会替他下这些命令吗?(2)你能否把一些文件压缩成 .tar.Z ,再自行解开?Zip -选项文件名.zip文件名打包并压缩成文件名为 .zip 的文件zip 和 gzip 虽然只差一个字母,不过用法差多了。zip 所使用的格式其实和 DOS 和 视窗系统 上的 .zip 是完全相同的!也就是说,他无需经过打包和压缩两道手续,就能产生兼有两种效用的 “压缩文件 包”。而且,如果使用这种格式的话, 就能和 .bmp, .jpg, .gif 等文件相同,自由地通行于 视窗系统 和 Linux 之间,多方便啊!例如,能在 视窗系统中用 WinZip 程式解开,或用 WinZip 压成 .zip

16、直接给 Linux 用。既然这么好,为什么大家不常用他?不要问我,我也不知道。计算机的世界里常常存在一种怪现象,好的东西不见得大家都用,大家都在用的往往并不是 最佳的选择,或只是听前辈这样用,他就跟着这样用。总之,如果你认为大家没在用的东西,就是不好的,那非常可能是错。到最后,找人来分析为什么用某某那样东西?好处为何? “普遍 ”!居然也可成为好处 之一,奇怪!zip 打包兼压缩的命令像是这样下达的(他高达 36 个选项,不过相信下面这些应该够你用了) :zip new1.zip my1*.doc把所有 my1*.doc 的文件打包成一个 new1.zip 文件。 new1.zip 能省略扩展

17、名简写成 new1 ,他会自行默认 .zip 的扩展名。zip -d new1.zip my18.doc如果当初 my18.doc 是压缩在 new1.zip 中的一个文件,目前这条命令把他从压缩文件中抽走并删掉。 -d 是删除的意思。zip -g new1.zip my32.doc如果当初并没有把 my32.doc 压在 new1.zip 里面,目前把他加进去。 -g 选项是增加而不要重新产生的意思 (grow ,长大,这个字母用得比较特别一点) 。 zip -u new1.zip my2*.doc如果当初 my2*.doc 都已压缩进 new1.zip 里面了,不过后来 my2*.doc

18、中有几个文件有更改,又不想去找出到底是哪些文件更改了,这条命令请系统自 行帮助检查,更改过的才更新到压缩,否则就不必动。 -u 是更新的意思。zip -r new2.zip mydir如果 mydir 是个目录名称,他会把整个目录的所有文件压缩成一个 new2.zip 文件。 -r 选项是压缩子目录的意思。那么解压缩的选项呢?抱歉, zip 只能压缩,没有兼职解压缩的功能。解压缩请用 unzip。练习:( 1 )如果压缩了一个子目录, 而目前子目录里有些文件更新了 (但未改名),要怎么办?如果他更新了, 也改名了 (例如 my0730.doc 改为 my0731.doc ), 要怎么处理?(2

19、)请把 zip 压好的文件经过 mount 驱动器过程,把他复制到 视窗系统 的驱动器,然后用 WinZip 程式解压试试看。 最佳是压缩一些 .bmp 或 .jpg 等 文件,到了 视窗系统 还能验证他是否还原了。unzip -选项文件名.zip文件名将 .zip 压缩文件解压zip 和 unzip 这组程式真正是一对搭档。 zip 程式本身没有解压能力,一定要用 unzip 程式来解压才行。 unzip 是个真正的程式,并不是 zip 的替身。因为 zip 程式会把一大堆文件压缩在一起,而解压时,有可能这一大堆文件的其中一些已存在了(如果都不存在,当然非常简单),于是产生了一些错综复杂、纠

20、葛缠绵的解压情况,你要有心里准备!例如,我们要把这些已存在的文件通通无条件地覆盖过去呢,还是只有把比他新才覆盖过去?或无论新旧,只 有不存在的文件才压缩加上去,还是每次遇见已有文件存在时,都要询问我,由我来决定?所谓已存在,是用UNIX 的判别法则,还是 DOS 的判别法则?也就是说,如果压缩文件里有一个大写的MYFILE ,他和现有的小写 myfile 算同名文件,还是算不同名文件?更有,因为 zip 能把整个子目录压缩起来,那么解压缩的时候,又会遇见无可避免的抉择情况:你是要解压回和原来目录相同的位置,还是在现有目录上 解压并产生目录?因为上面情况太复杂了,所以我们只列一道范例命令,然后其

21、他都直接列出选项了:unzip onepackage.zip a*.doc把 onepackage.zip 里面凡是 a*.doc 的都解压出来。如果 a*.doc 文件名没有输入,就会把 onepackage.zip 全部解压。不过最佳配合下面的选项,决定 你遇见现有相同文件名时的 8 个处理决策:-f 只解压更新已存在的文件,其他文件不解压(但更新时会一一询问) 。-u 解压更新已存在的文件,并把不存在的文件也解压(但更新时会一一询问) 。-fo 只解压更新已存在的文件,其他文件不解压(但不询问直接覆盖更新) 。-uo 解压更新已存在的文件,并把不存在的文件也解压(但不询问直接覆盖更新)

22、。-o 不论文件是新是旧,一律从压缩文件中解压,并直接覆盖。-n 只把不存在的文件解压,已存在的文件则无论新旧一律保留原状。-C 不计较大小写的不同,视为相同文件名(默认是视为不同) 。-L 解压时一律将文件名转为小写。更有,遇见有子目录时的处理决策:-j 不管原来压缩时的目录为何,均全部解开于现行目录。-d 后面接一个目录名称。能指定解压到该目录。一个其他的常用选项:-l 只列出压缩包里面有哪些文件,而不真的解开压缩。练习:(1 )从 视窗系统 磁盘里找一个或临时用 WinZip 制作一个 .zip 压缩文件,拿到 Linux 用 unzip 命令解开。有必要在解压时一律转为小写吗?(2 )

23、如果我们在 Linux 中压缩了两个大小写不同但字母相同的文件到 .zip ,这个文件拿到视窗系统用 Winzip 程式解开时会怎样?bzip2 - 选项 文件名 压缩成文件名为 .bz2 的压缩文件bzip2 是新一代的压缩程式,不过仍然改不掉 gzip 的老毛病:只能压缩一个文件,要打包还得靠 tar 帮忙。所以你还是会看到 tar.bz2 这种文件。bzip2 引用的是一套称为 Burrows-Wheeler block sorting 的文字压缩演算法,及有名的霍夫曼编码法( Huffman coding ),所以名称为 B 字开头。这种压缩 法在压缩的过程会用到称为 block 的内

24、存单位,你能自定义这个 block 内存单位的大小, block 用得越大,压缩的效果越好,当然用的内存就越多。我们能给定 19的选项,他所用的内存算法如下。压缩时:内存用量=400KB+(block 大小X7)block大小=选项X100KB解压时:内存用量=400KB+(block 大小X4)解压时的 block 大小已在压缩时决定了,所以不用选项决定。所以,压缩时能这样下达命令:bzip2 -9 -k myfile.doc把 myfile.doc 命令压缩成最小的文件, -9 选项其实是默认的。他会产生 文件。加上 -k 选项表示虽然产生了 ,但仍要保留 myfile.doc 原文件,这就是 gzip 程式所做不到的了。练习:(1 )请找到一个 文件,把他改制成 文件。(2)bzip2 是否也像 gzip 或 compress 相同,能用 -d 选项自兼解压缩的功能?bunzip2 -选项文件名.bz2将 .bz2 压缩文件解压bunzip2 命令和 bzip 命令相对,专门把 bzip 压缩出的 .bz2 文件解压缩。如果你有已压缩过的文件,例如 myfile.bz2 ,这时就能用:bunzip2 myfile.bz2也能用 bzip2 自己来完成,效果完全相同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论