在Linux系统查找文件也会碰到这样一个实际问题。假如我们在整个硬碟,这个系统中查找某个文件就要耗费相当长的一段时间,非常是小型Linux系统和容量较大的硬碟,文件置于套嵌很深的目录中的时侯。假如我们晓得了这个文件储存在某个大的目录中,这么只要在这个目录中往下找能够节约好多时间了。使用find/etc-namehttpd.conf就可以解决这个问题。里面的命令就是表示在etc目录中查询httpd.conf这个文件。这儿再说明一下“/”这个函数符号的含意,倘若输入“find/”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬碟上查找文件,而“find/etc”就是只在etc目录下查找文件。由于“find/etc”表示只在etc目录下查找文件,所以查找的速率就相应要快好多了。
依据部份文件名查找方式:
这个方式和在WINDOWS中查找已知的文件名方式是一样的。不过在Linux中按照部份文件名查找文件的方式要比在WINDOWS中的同类查找方式要强悍得多。诸如我们晓得某个文件包含有srm这3个字母,这么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find/etc-name'*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,例如absrmyzlinux 下载文件命令,tibc.srm等等符合条件的文件都能显示下来。假如你还晓得这个文件是由srm这3个字母打头的,这么我们还可以省略最上面的星号,命令如下:
find/etc-name'srm*'
这是只有像srmyz这样的文件才被查找下来,象absrmyz或则absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大提高了。
按照文件的特点查询方式:
假如只晓得某个文件的大小linux是什么系统,更改日期等特点也可以使用“find”命令查找下来,这和WINDOWS系统中的"搜索"功能是基本相同的。在谷歌的"搜索"中WINDOWS中的"搜索助理"促使搜索文件和文件夹、打印机、用户以及网路中的其他计算机愈发容易。它甚至使在Internet上搜索愈发容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,致使搜索速率更快。使用"搜索助理"时,用户可以指定多个搜索标准。诸如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。假如用户正使用ActiveDirectory,这时还可以搜索带有特定名称或位置的复印机。
比如我们晓得一个Linux文件大小为1,500bytes,这么我们而且使用如下命令来查询find/-size1500clinux 下载文件命令,字符c表明这个要查找的文件的大小是以bytes为单位。假如我们连这个文件的具体大小都不晓得,这么在Linux中还可以进行模糊查找方法来解决。诸如我们输入find/-size+10000000c这个命令,则注明我们指定系统在根目录中查找出小于10000000字节的文件并显示下来。命令中的“+”是表示要求系统只列举小于指定大小的文件,而使用“-”则表示要求系统列举大于指定大小的文件。下边的列表就是在Linux使用不同“find"命令后系统所要做出的查找动作,从中我们很容易看出在Linux中使用“find"命令的形式是好多的,“find"命令查找文件只要灵活应用,丝毫毋须在WINDOWS中查找能力差。
find/-amin-10#查找在系统中最后10分钟访问的文件
find/-atime-2#查找在系统中最后48小时访问的文件
find/-empty#查找在系统中为空的文件或则文件夹
find/-groupcat#查找在系统中属于groupcat的文件
find/-mmin-5#查找在系统中最后5分钟里更改过的文件
find/-mtime-1#查找在系统中最后24小时里更改过的文件
find/-nouser#查找在系统中属于作废用户的文件
find/-userfred#查找在系统中属于FRED这个用户的文件
下边的列表就是对find命令所可以指定文件的特点进行查找的部份条件。在这儿并没有列出所有的查找条件,参考有关Linux有关书籍可以晓得所有find命令的查找函数。
-aminn
查找系统中最后N分钟访问的文件
-atimen
查找系统中最后n*24小时访问的文件
-cminn
查找系统中最后N分钟被改变状态的文件
-ctimen
查找系统中最后n*24小时被改变状态的文件
-empty
查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false
查找系统中总是错误的文件
-fstypetype
查找系统中存在于指定文件系统的文件,比如:ext2.
-gidn
查找系统中文件数字组ID为n的文件
-groupgname
查找系统中文件属于gnam文件组红旗linux桌面版,但是指定组和ID的文件
Find命令的控制选项说明:
Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
选项
用途描述
-daystart
.测试系统从明天开始24小时以内的文件,用法类似-amin
-depth
使用深度级别的查找过程方法,在某层指定目录中优先查找文件内容
-follow
遵守键值链接形式查找;另外,也可忽视键值链接形式查询
-help
显示命令摘要
-maxdepthlevels
在某个层次的目录中根据递减方式查找
-mount
不在文件系统目录中查找,用法类似-xdev.
-noleaf
严禁在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
-version
复印版本数字
使用-follow选项后,find命令则遵照键值链接形式进行查找,除非你指定这个选项,否则通常情况下find命令将忽视键值链接形式进行文件查找。
-maxdepth选项的作用就是限制find命令在目录中根据递减形式查找文件的时侯搜索文件超过某个级别或则搜索过多的目录,这样造成查找速率变慢,查找耗费的时间过多。诸如,我们要在当前(.)目录方法子目录中查找一个名叫fred的文件,我们可以使用如下命令
find.-maxdepth2-namefred
如果这个fred文件在./sub1/fred目录中,这么这个命令都会直接定位这个文件,查找很容易成功。如果,这个文件在./sub1/sub2/fred目录中,这么这个命令就难以查找到。由于上面早已给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令愈发精确的定位文件,假如你已然晓得了某个文件大约所在的文件目录级数,这么加入-maxdepthn就很快的能在指定目录中查找成功。
使用混和查找方法查找文件
find命令可以使用混和查找的方式,比如我们想在/tmp目录中查找小于100000000字节而且在48小时内更改的某个文件,我们可以使用-and来把两个查找选项链接上去组合成一个混和的查找方法。
find/tmp-size+10000000c-and-mtime+2
学习过计算机语言的同学都晓得,在计算机语言里,使用and,or分别表示“与”和“或”的关系。在Linux系统的查找命令中一样通用。
还有这样的事例,
find/-userfred-or-usergeorge
我们可以解释为在/tmp目录中查找属于fred或则george这两个用户的文件。
在find命令中还可以使用“非”的关系来查找文件,假如我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
find/tmp!-userpanda
命令就可以解决了。很简单。
查找并显示文件的方式
查找到某个文件是我们的目的,我们更想晓得查找到的文件的详尽信息和属性,假如我们采取现查找文件,在使用LS命令来查看文件信息是相当繁杂的,如今我们也可以把这两个命令结合上去使用。
find/-name"httpd.conf"-ls