find 命令准确,但速度非常慢,它可以查找任何类型的文件

find [指定目录] [指定条件] [指定动作]

参数说明

[指定目录]: 所要搜索的目录及其所有子目录。默认为当前目录
[指定条件]: 所要搜索的文件的特征
[指定动作]: 对搜索结果进行特定的处理

常用的[指定条件]

-name:按文件名来查找文件
-user:按照文件的属主来查找文件
-group:按照文件所属的组来查找文件
-perm:按照文件权限来查找文件
-prune:不在当前指定目录中查找

常用的[指定动作]

-print:将匹配的文件输出到标准输出
-exec:对匹配的文件执行该参数所给出的shell命令
-ok:和-exec的作用相同,在执行每一个命令之前,让用户来确定是否执行


递归搜索当前目录中,所有以file开头的文件。

find . -name 'file*'

递归搜索当前目录中,所有以file开头的文件,并显示它们的详细信息。

find . -name 'file*' -ls

查找系统一file开头的文件

find / -name 'file*'

locate 命令是 find -name 的另一种写法

locate 不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。

Linux自动创建这个数据库,并且每天自动更新一次,所以使用 locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

locate [参数] <文件名>

搜索etc目录下所有以file开头的文件

locate /etc/file

搜索用户主目录下,所有以f开头的文件,并且忽略大小写

locate -i ~/f
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐