第12章 压缩命令与查找系统_第1页
第12章 压缩命令与查找系统_第2页
第12章 压缩命令与查找系统_第3页
第12章 压缩命令与查找系统_第4页
第12章 压缩命令与查找系统_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第12章压缩命令与查找系统12.3Shell压缩指令

压缩文件使用较少磁盘空间,并且比未压缩的大文件下载速度要快。主要的压缩工具如下:压缩工具文件扩展名解压工具gzip.gzgunzipbzip2.bz2bunzip2zip.zipunzip12.3.1compress指令

compress是个相当古老的Unix文件压缩指令,压缩后的文件会加上一个.z扩展名以区别于未压缩的归档文件,压缩后的文件能够以uncompress解压。若要将多个文件压成一个压缩文件,必须先将文件tar起来再压缩。语法

compress[-d][file...]参数说明-d将压缩档解压缩-r:连同目录下的文件一起压缩-c:输出结果至标准输出设备(一般指荧幕)范例一:将/etc/man.config复制到/tmp,并加以压缩

[root@linux~]#cd/tmp

[root@linuxtmp]#cp/etc/manpath.config.

[root@linuxtmp]#compressmanpath.config

[root@linuxtmp]#ls-l

-rw-r--r--1rootroot2605Jul2711:43man.config.Z

范例二:将刚刚的压缩档解开

[root@linuxtmp]#compress-dmanpath.config.Z范例三:将manpath.config压缩成另外一个文件来备份

[root@linuxtmp]#compress-cman.config>man.config.back.Z

[root@linuxtmp]#llmanpath.config*

-rw-r--r--1rootroot4506Jul2711:43man.config

-rw-r--r--1rootroot2605Jul2711:46man.config.back.Z

#这个-c的参数比较有趣!他会将压缩过程的资料输出到萤幕上,而不是写入成为#file.Z文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。12.3.2bzip2、bunzip2和bzcat指令

bzip2和bunzip2的功能基本相同,都是用来压缩或解压文件扩展名为bz2的命令,而bzcat命令则是用来读取数据而不需要解开。语法

user@ubuntuer:~$bzip2[-dz]档名

user@ubuntuer:~$bunzip2[-dz]档名

user@ubuntuer:~$bzcat档名.bz2参数:

-d:解压缩的参数

-z:压缩的参数

-#:与gzip同样的,都是在计算压缩比的参数,-9最佳,-1最快!范例:

范例一:将刚刚的/tmp/manpath.config以bzip2压缩

user@ubuntuer:~tmp$bzip2-zmanpath.config

#此时man.config会变成man.config.bz2!范例二:将范例一的文件内容读出来!

user@ubuntuer:~tmp$bzcatmanpath.config.bz2

#此时萤幕上会显示man.config.bz2解压缩之后的文件内容!!范例三:将范例一的文件解压缩

user@ubuntuer:~tmp$bzip2-dmanpath.config.bz2范例四:将范例三解开的manpath.config用最佳的压缩比压缩,并保留原本的文件

user@ubuntuer:~tmp$bzip2-9-cmanpath.config>man.config.bz212.3.3gzip、gunzip和zcat指令

gzip和gunzip的功能基本上相同,都是用来压缩或解压文件扩展名为gz的命令,而用zcat命令用来读取数据而不需要解开。语法:

user@ubuntuer:~$gzip[-d#]档名

user@ubuntuer:~$gunzip[-d#]档名

user@ubuntuer:~$zcat档名.gz

◆参数:

-d:解压缩的参数;

-#:压缩等级,-1最快,但是压缩比最差、-9最慢,但是压缩比最好!预设是-6~范例:范例一:将/etc/man.config複制到/tmp,并且以gzip压缩

user@ubuntuer:~$cd/tmp

user@ubuntuer:~tmpcp/etc/man.config.

user@ubuntuer:~tmpgzipman.config

#此时man.config会变成man.config.gz!范例二:将范例一的文件内容读出来!

user@ubuntuer:~tmpzcatman.config.gz

#此时萤幕上会显示man.config.gz解压缩之后的文件内容!!范例三:将范例一的文件解压缩

user@ubuntuer:tmp$gzip-dman.config.gz范例四:将范例三解开的man.config用最佳的压缩比压缩,并保留原本的文件

user@ubuntuer:tmp$gzip-9-cman.config>man.config.gz12.3.4.zip和unzip

zip和unzip命令基本功能和参数类似,都可以用来进行文件的压缩和解压缩。语法user@ubuntuer:~$zip[filename]filenameuser@ubuntuer:~$unzipfilename.zip例子

user@ubuntuer:~$ziptesttest

user@ubuntuer:~$unziptest.zip12.4Shell归档命令

Ubuntu和其他Linux一样,主要的处理归档文件的指令有tar指令和cpio指令。12.4.1tar指令语法

user@ubuntuer:~$tar[-cxtzjvfpPN]文件与目录....参数:

-c:建立一个压缩文件的参数指令(create的意思);

-x:解开一个压缩文件的参数指令!

-t:查看tarfile里面的文件!

特别注意,在参数的下达中,c/x/t仅能存在一个不可同时存在,因为不可能同时压缩与解压缩。

-z:是否同时具有gzip的属性?亦即是否需要用gzip压缩?

-j:是否同时具有bzip2的属性?亦即是否需要用bzip2压缩?

-v:压缩的过程中显示文件.这个常用,但不建议用在背景执行过程!

-f:使用档名,请留意,在f之后要立即接档名喔!不要再加参数!

例如使用『tar-zcvfPtfilesfile』就是错误的写法,要写成

『tar-zcvPftfilesfile』才对喔!

-p:使用原文件的原来属性(属性不会依据使用者而变)

-P:可以使用绝对路径来压缩!

-N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--excludeFILE:在压缩的过程中,不要将FILE打包。范例:

范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar

user@ubuntuer:~$tar-cvf/tmp/etc.tar/etc<==仅打包,不压缩!

user@ubuntuer:~$tar-zcvf/tmp/etc.tar.gz/etc<==打包后,以gzip压缩

user@ubuntuer:~$tar-jcvf/tmp/etc.tar.bz2/etc<==打包后,以bzip2压缩

#特别注意,在参数f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识。

#如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tarfile~

#如果加j参数,则以.tar.bz2来作为附档名啊~

#上述指令在执行的时候,会显示一个警告讯息:

#『tar:Removingleading`/'frommembernames』那是关於绝对路径的特殊设定。范例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件?

user@ubuntuer:~$tar-ztvf/tmp/etc.tar.gz

#由於我们使用gzip压缩,所以要查阅该tarfile内的文件时,

#就得要加上z这个参数了!这很重要的!范例三:将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下

user@ubuntuer:~$cd/usr/local/src

[user@ubuntuer:/usr/local/src$

tar-zxvf/tmp/etc.tar.gz

#在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

#我先将工作目录变换到/usr/local/src底下,并且解开/tmp/etc.tar.gz,

#则解开的目录会在/usr/local/src/etc呢!另外,如果您进入/usr/local/src/etc

#则会发现,该目录下的文件属性与/etc/可能会有所不同喔!范例四:在/tmp底下,我只想要将/tmp/etc.tar.gz内的etc/passwd解开而已

user@ubuntuer:~$cd/tmp

[user@ubuntuer:tmp$tar-zxvf/tmp/etc.tar.gzetc/passwd

#我可以透过tar-ztvf来查阅tarfile内的文件名称,如果单只要一个文件,

#就可以透过这个方式来下达!注意到!etc.tar.gz内的根目录/是被拿掉了!范例五:将/etc/内的所有文件备份下来,并且保存其权限!

user@ubuntuer:~$tar-zxvpf/tmp/etc.tar.gz/etc

#这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时!范例六:在/home当中,比2005/06/01新的文件才备份

user@ubuntuer:~$tar-N'2005/06/01'-zcvfhome.tar.gz/home范例七:我要备份/home,/etc,但不要/home/dmtsai

user@ubuntuer:~$tar--exclude/home/dmtsai-zcvfmyfile.tar.gz/home/*/etc范例八:将/etc/打包后直接解开在/tmp底下,而不产生文件!

user@ubuntuer:~$cd/tmp

user@ubuntuer:tmp$tar-cvf-/etc|tar-xvf-

#这个动作有点像是cp-r/etc/tmp啦~依旧是有其有用途的!

#要注意的地方在於输出档变成-而输入档也变成-,又有一个|存在~

#这分别代表standardoutput,standardinput与管线命令啦!

#这部分我们会在Bashshell时,再次提到这个指令跟大家再解释啰!12.4.2cpio指令语法

user@ubuntuer:~$cpio-covB>[file|device]<==备份

user@ubuntuer:~$cpio-icduv<[file|device]<==还原

参数:

-o:将资料copy输出到文件或装置上

-i:将资料自文件或装置copy出来系统当中

-t:查看cpio建立的文件或装置的内容

-c:一种较新的portableformat方式储存

-v:让储存的过程中文件名称可以在萤幕上显示

-B:让预设的Blocks可以增加至5120bytes,预设是512bytes!

这样的好处是可以让大文件的储存速度加快(请参考i-nodes的观念)

-d:自动建立目录!由於cpio的内容可能不是在同一个目录内,

如此的话在反备份的过程会有问题!这个时候加上-d的话,

就可以自动的将需要的目录建立起来了!

-u:自动的将较新的文件覆盖较旧的文件!范例:

范例一:将所有系统上的资料通通写入磁带机内!

[user@ubuntuer:~$find/-print|cpio-covB>/dev/st0

#一般来说,使用SCSI介面的磁带机,代号是/dev/st0喔!

范例二:检查磁带机上面有什么文件?

user@ubuntuer:~$cpio-icdvt</dev/st0

[user@ubuntuer:~$cpio-icdvt</dev/st0>/tmp/content

#第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,

#将所有的档名通通纪录到/tmp/content文件去!

范例三:将磁带上的资料还原回来~

[user@ubuntuer:~$cpio-icduv</dev/st0

#一般来说,使用SCSI介面的磁带机,代号是/dev/st0喔!

范例四:将/etc底下的所有『文件』都备份到/root/etc.cpio中!

user@ubuntuer:~$find/etc-type-f|cpio-o>/root/etc.cpio

#这样就能够备份啰~您也可以将资料以cpio-i</root/etc.cpio

#来将资料捉出来!!!!12.5文件查找

在ubuntu下的查找功能跟Windows下的功能很相似,但是ubuntu下的查找功能更加细化,提供更多的查询参数设置。12.5.1文件搜索器

位置|搜索文件,进入ubuntu的文件搜索器。12.5.2find指令

find命令的作用是在目录中搜索文件,它的使用权限是所有用户。格式

find[路径][参数]参数说明

-aminn:查找系统中最后N分钟访问的文件

-atimen:查找系统中最后n*24小时访问的文件

-cminn:查找系统中最后N分钟被改变状态的文件

-ctimen:查找系统中最后n*24小时被改变状态的文件

-mminn:查找系统中N分钟以内文件内容被修改过的所有文件。

-mtimen:查找系统中n*24小时以内文件内容被修改过的所有文件。

-neverfile:查找比file还要新的所有文件。

使用名称和文件属性-name:按照文件名查找文件。-perm:按照文件权限来查找文件。-prune:使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。-user:按照文件属主来查找文件。-group:按照文件所属的组来查找文件。-mtime-n+n:按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项。type查找某一类型的文件,诸如:b-块设备文件。d-目录。c-字符设备文件。p-管道文件。l-符号链接文件。f-普通文件。1、查找当前用户主目录下名为aa的文件或目录:zcq@zcq-laptop:~$find-nameaa

2、查找当前用户主目录下包含aa的文件或目录:zcq@zcq-laptop:~$find-name‘aa*’

3、寻找用户主目录下一天内新增的目录或文件。zcq@zcq-laptop:~$find-ctime1

4、寻找/home/zcq/a目录下比.bashrc还要新的文件。zcq@zcq-laptop:~$find/home/zcq/a-newer.bashrc5、为了查找系统中所有属于root组的文件;zcq@zcq-laptop:~$$find-grouproot6、寻找/dev下文件属性为b的文件。zcq@zcq-laptop:~$find/dev-typeb12.6文件定位

在ubuntu下有相当优异的文件定位系统,包括“最近的文档”,还有常用的一些Shell命令,但通常find不是很常用的,因为除了速度慢之外,它也很耗费硬盘资源,通常情况下我们都是先使用whereis或者是locate来检查,如果真的找不到才用find来查找。这是因为whereis或者是locate是利用数据库来查找数据,所以相当的快,而且实际并没有搜寻硬盘,因此比较省时间。12.6.1最近文档窗口“位置”|“最近的文档”以查看最近看过或修改过的文件。12.6.2搜索和索引编制“系统”|“首选项”|“搜索和索引编制”

通过这个设置窗口,用户可以定制索引文件的方方面面,包括指定索引文件的监视路径和非监视路径,排除指定的文件或文件类型,设定是否对邮件进行监视等。除此之外,为了提高搜索性能,还可以对索引文件的大小、内存占用等进行设置,以满足用户对系统部署的要求。12.6.3which指令

which命令能够按PATH变量所规定的路径进行查找。语法

user@ubuntuer:~$which[文件名称]

补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。参数:

-n<文件名长度>指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p<文件名长度>与-n参数相同,但此处的<文件名长度>包括了文件的路径。

-w指定输出时栏位的宽度。

-V显示版本信息例子

例如,现在想知道which命令本身的绝对路径,可以下达命令:

#which

which这样查询到的结果为:

/usr/bin/which

Which命令一般只查询到第一个匹配的结果,如果想将所有匹配的结果全部显示出来可以加上-a参数。12.6.4whereis指令

whereis命令会在指定的目录中查找符合条件的文件。语法

user@ubuntuer:~$whereis[-bmsu]

温馨提示

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

评论

0/150

提交评论