Linux知识三:高效查找文件

CloudCraft 2010-11-12

如何查找文件:find 目录/. -name 文件:查找文件在指定目录/当前目录下指定的文件名(eg:find / -name httpd -ctime 0[多少天内])。

find最强大,什么都能查,find是直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用。

locate能查所以,但跟whereis一样都是查数据库里的内容,locate同上,不过文件名是部分匹配。

which只能查可执行文件,which只能寻找执行文件,并在PATH变量里面寻找。

whereis只能查二进制文件、说明文档,源文件等,whereis从linux文件数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。

find[PATH][option][action],参数:

1.与时间有关的参数:

-atimen:n为数字,意义为在n天之前的『一天之内』被access过的档案;

-ctimen:n为数字,意义为在n天之前的『一天之内』被change过状态的档案;

-mtimen:n为数字,意义为在n天之前的『一天之内』被modification过的档案;

-newerfile:file为一个存在的档案,意思是说,只要档案比file还要新,

就会被列出来~

2.与使用者或群组名称有关的参数:

-uidn:n为数字,这个数字是使用者的账号ID,亦即UID,这个UID是记录在

/etc/passwd里面与账号名称对应的数字。这方面我们会在第四篇介绍。

-gidn:n为数字,这个数字是群组名称的ID,亦即GID,这个GID记录在

/etc/group,相关的介绍我们会第四篇说明~

-username:name为使用者账号名称喔!例如dmtsai

-groupname:name为群组名称喔,例如users;

-nouser:寻找档案的拥有者不存在/etc/passwd的人!

-nogroup:寻找档案的拥有群组不存在于/etc/group的档案!

当您自行安装软件时,很可能该软件的属性当中并没有档案拥有者,

这是可能的!在这个时候,就可以使用-nouser与-nogroup搜寻。

3.与档案权限及名称有关的参数:

-namefilename:搜寻文件名称为filename的档案;

-size[+-]SIZE:搜寻比SIZE还要大(+)或小(-)的档案。这个SIZE的规格有:

c:代表byte,k:代表1024bytes。所以,要找比50KB

还要大的档案,就是『-size+50k』

-typeTYPE:搜寻档案的类型为TYPE的,类型主要有:一般正规档案(f),

装置档案(b,c),目录(d),连结档(l),socket(s),

及FIFO(p)等属性。

-permmode:搜寻档案属性『刚好等于』mode的档案,这个mode为类似chmod

的属性值,举例来说,-rwsr-xr-x的属性为4755!

-perm-mode:搜寻档案属性『必须要全部囊括mode的属性』的档案,举例来说,

我们要搜寻-rwxr--r--,亦即0744的档案,使用-perm-0744,

当一个档案的属性为-rwsr-xr-x,亦即4755时,也会被列出来,

因为-rwsr-xr-x的属性已经囊括了-rwxr--r--的属性了。

-perm+mode:搜寻档案属性『包含任一mode的属性』的档案,举例来说,我们搜寻

-rwxr-xr-x,亦即-perm+755时,但一个档案属性为-rw-------

也会被列出来,因为他有-rw....的属性存在!

4.额外可进行的动作:

-execcommand:command为其它指令,-exec后面可再接额外的指令来处理搜寻到

的结果。

-print:将结果打印到屏幕上,这个动作是预设动作!

相关推荐

老甘的可读区 / 0评论 2020-02-23