Linux中,whereis和locate都是基于文件数据库进行文件和目录的查找的,而find则会去查找硬盘,所以,尽管可能会比较费时间,但却是最精确和最可靠的。本文介绍下find命令的详细用法。

命令格式

find命令一般使用格式为:

find [pathname] [options] [-exec…],即,可以加的选项很多。如图。

clip_image002

常见参数

pathname:所查找的目录路径

该路径可以是一个路径,也可以是多个。

-print:将查看结果输出,这是默认选项

-exec:用法为-exec COMMAND {} \; ,指针对find的查找结果,执行COMMAND命令。

常见选项

-name NAME:按照文件名进行查找

clip_image003

需要注意的是,-name和文件name之间并没有等于号。

-perm PERM:按照文件权限进行查找

Linux中find命令详解_第1张图片

上图中,查找/bin下权限大于4000的文件,即查找出了所有的SUID文件。同理,所有的SGID文件(目录)权限为+2000,而所有的SBIT目录的权限为+1000.

结合-exec选项,可以将查找结果ls出来,如下:

Linux中find命令详解_第2张图片

需要注意的是,{}中间无空格。

-user USER:按照用户名进行查找

Linux中find命令详解_第3张图片

-group GROUP:按照组名进行查找

Linux中find命令详解_第4张图片

-mtime n/+n/-n:按照文件的更改时间来查找,n表示n天前24小时内修改过的文件,+n表示n天前修改过的文件,-n表示n天内修改过的文件。比如说,n为4,则+n/-n/n意思如下:

Linux中find命令详解_第5张图片

比如:

clip_image009

上图表示查找从当前起前24小时内更改过的文件。

-nouser:查找无有效用户的文件

当删除某用户时,该用户所创建的文件就成了无有效用户文件。

-nogroup:查找无有效组的文件

-newer file1:查找比file1更改时间新的文件

-type:查找某一类型的文件,如:

b:查找块设备文件

d:查找目录

c:查找字符设备文件

Linux中find命令详解_第6张图片

p:查找管道文件

l:查看链接文件

f:查找普通文件

-size n:查找文件大小为n的文件,也可以使用+、-来表示大于或小于N的文件。