Linux笔记之文件查找和搜索命令which,find,locate,whereis总结

Linux笔记之文件查找和搜索命令which,find,locate,whereis总结

在这里插入图片描述

code review!

1.对比

命令 功能说明 备注
which 常用于查找可直接执行的命令。只能查找可执行文件。该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径。 命令文件
locate 超快速查找任意文件。它会从linux内置的索引数据库查找文件的路径,索引速度超快。新建的文件可能需要一定时间才能加入该索引数据库,可用updatedb命令来强制更新索引。该命令通常会返回大量匹配项,可以使用-r选项通过正则表达式来精确匹配。 任意文件
find 直接搜索整个文件目录,默认直接从根目录开始搜索,功能最强大但速度相对慢些。除非你指定一个很小的搜索范围。通过-name选项指定要查找的文件名,支持通配符。 任意文件
whereis 该指令只能用于查找二进制文件、源代码文件和man手册页。一般文件的定位需使用locate命令。 二进制文件

2.whereis 和 which 命令区别

搜索范围:which 只在 PATH 中搜索,而 whereis 在系统目录中搜索。
返回结果:which 仅返回可执行文件,whereis 返回二进制、源码和手册页。

user@user-vm:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

user@user-vm:~$ which ls
/bin/ls

user@user-vm:~$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

3.locate 和 find 命令区别

速度:locate 更快,find 相对较慢。
准确性:find 更准确实时,locate 依赖于数据库的更新频率。
功能:find 更加灵活和强大,适用于复杂的查找需求;locate 适合简单快速的文件定位。

附:locate命令查找文件是通过LINUX文件数据库去查找,它对磁盘不进行扫描,因此查找速度比find快。但是新建的文件,由于没有马上同步到LINUX文件数据库里,这样,刚新建的文件通过locate可能查找不到,需要用updatedb手动执行同步,或者待LINUX系统自动执行任务后才可以找到。

猜你喜欢

转载自blog.csdn.net/weixin_43297891/article/details/143097575