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