which
只能在PATH变量里面寻找“可执行文件”。
whereis
只能找二进制文件、可执行文件、帮助文档,源文件等,默认情况下只在某些目录下查找,但是可以指定查找路径:whereis -B /usr/include/python/ -f ifconfig
locate(常用)
从数据库中找,速度快且能查所有文件,查之前先用updatedb更新一下数据库。以下是几个和该命令有关的文件:
/etc/cron.daily/mlocate 每日系统会自动更新数据库,所以会有延时
/etc/updatedb.conf updatedb的配置文件
PRUNE_BIND_MOUNTS: 否进行限制搜索
PRUNEFS: 要排除的文件系统
PRUNENAMES: 排除指定后缀的文件
PRUNEPATHS: 排除指定的路径
/var/lib/mlocate/mlocate.db (不同发行版位置可能不一样,/var/lib/slocate/slocate.db,/var/cache/locate/locatedb)。至于如何查看这个文件,可以用hexdump -c mlocate.db,具体不展开,自行Google吧
find(常用)
直接在硬盘上找,所以比较慢。最常用的命令就是find / -name FILENAME