2.27 find:查找目录或者文件

作用:寻找文件、目录。

使用权限:所有用户。

用法:find [path][选项][expression]

path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分开,如果不写path,那么默认为当前目录。

主要选项如下。

● -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。

● -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0,表示仅在当前目录中查找。

● -mindepth levels:表示至少查找到开始目录的第level层子目录。

● -mount:不在其他文件系统(如Msdos,Vfat等)的目录和文件中查找。

● -version:打印版本。

● [expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。

● -name:支持通配符“*”和“?”。

● -atime n:搜索在过去n天读取过的文件。

● -ctime n:搜索在过去n天修改过的文件。

● -group grpoupname:搜索所有组为grpoupname的文件。

● -user用户名:搜索所有文件属主为用户名(ID;名称)的文件。

● -size n:搜索文件大小是n个block的文件。

● -print:输出搜索结果,并且打印。

应用实例如下。

find命令查找文件的5种方法如下。

(1)文件名查找法

        find / -name named.conf

(2)快速查找文件法

如果知道文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如named.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面的命令:

        find /etc -name named.conf

(3)根据部分文件名查找法

有时仅知道某个文件包含有abdd这4个字符,那么要查找系统中所有包含这4个字符的文件可以输入下面的命令:

        find / -name '*abdd*'

输入这个命令以后,Linux系统将会在“/”目录中查找所有包含abdd这4个字符的文件(其中“*”是通配符),比如abddrmyz等符合条件的文件都能显示出来。

(4)根据文件的特征查询法

有时知道某个文件的大小、修改日期、所属用户等特征,也可以使用“find”命令查找出文件来,例如,查找在系统中属于已经作废用户的文件,可以使用下面的命令:

        find  / -nouser

(5)混合查找方式查找法

find命令可以使用混合查找的方法。例如,我们想在“/home”目录中查找大于500000字节、并且属于cao用户的文件,可以使用-and(与)把两个查找参数连接起来组合成一个混合的查找方式:

        find  /home -size +500000c -and -user cao