Linux笔记之文件查找和搜索命令which,find,locate,whereis总结
code review!
文章目录
- Linux笔记之文件查找和搜索命令which,find,locate,whereis总结
- 1.对比
- 2.whereis 和 which 命令区别
- 3.locate 和 find 命令区别
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/binuser@user-vm:~$ which ls
/bin/lsuser@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系统自动执行任务后才可以找到。