which 可以查找可执行文件的位置

evilxr@IdeaPad:~$ which ping
/bin/ping

 


 

whereis

whereis -m 可查询到命令的帮助文档在什么地方

evilxr@IdeaPad:~$ whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
evilxr@IdeaPad:~$ whereis -m pwd
pwd: /usr/share/man/man1/pwd.1.gz

 

evilxr@IdeaPad:~$ whereis pwd
pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

 输出信息有三条
1.命令本身所在目录
2.其源文件所在目录
3.其帮助文档所在目录


locate 基于本地计算机数据库(计算机磁盘信息),速度比find快些。locate一般是在晚上更新数据库,但是也可以自己手动更新

root@IdeaPad:~# sudo updatedb
root@IdeaPad:~/test# ls
1.txt  2.txt  aa.tar.gz  ab.tar.bz2  ac.tar  ac.tar.bz2  ac.tar.gz
root@IdeaPad:~/test# locate aa.tar.gz 
/root/test/aa.tar.gz
root@IdeaPad:~/test# cd /tmp
root@IdeaPad:/tmp# locate aa.tar.gz 
/root/test/aa.tar.gz
root@IdeaPad:/tmp# 

 

创建一个新文件,用locate试试~
root@IdeaPad:~/test# touch aobama
root@IdeaPad:~/test# ed aobama
0
a
我是新创建的文件,
看下locate命令能找到我么~
.
w
63
q
root@IdeaPad:~/test# locate aobama
root@IdeaPad:~/test# 
结果找不到~

 

更新数据库后看下:
@IdeaPad:~/test# sudo updatedb
root@IdeaPad:~/test# locate aobama
/root/test/aobama
root@IdeaPad:~/test# 

 

find 命令 全盘扫描,类似windows的查找;速度比较慢

find可以基于文件名查找

root@IdeaPad:~# find ./ -name 'te*'
./test
root@IdeaPad:~# find ./ -name '1*'
./test/1.txt
./1.txt
root@IdeaPad:~#