find locate whereis which

查询文件的位置

  • 1 find: 最强大的查询文件命令

find 指定路径 文件名称 后续操作
find uwsgi.log
从根目录开始查询uwsgi.log的所有文件

find / -name uwsgi.log
=> 查询所有的uwsgi.log文件
find -name uwsgi
=>查询所有的uwsgi文件夹的路径
find -name "uwsgi*"
=>模糊匹配,只要路径中带有uwsgi的字样就会被查询出来

- 2. locate 是find -name 的进阶版本

他是基于数据库中文件路径查询的,
速度比find快,数据库每天会更新,但是今天修改的文件或者移动了文件,是查询不到的,如果你有更新文件的路径,那么先执行updatedb命令更新数据库,再查询.

PS:个人理解其实这个命令有点像是 数据库中的like命令,就是模糊匹配,
比如有一个路径:
/home/ubuntu/beauty/beauty/uwsgi.log
==> locate ~/uwsgi.log
是查询不到的
==> locate /uwsgi.log
返回开始的路径
==> locate uwsgi.log
返回开始的路径

e.g文件位置:
/home/ubuntu/beauty/beauty/uwsgi.log
/home/ubuntu/mei_shell/uwsgi.log

locate ~/uwsgi.log  
因为路径中没有~,so找不到 

lcoate /mei_shell/uwsgi.log     
==> /home/ubuntu/mei_shell/uwsgi.log

locate /uwsgi
==>
/home/ubuntu/beauty/beauty/uwsgi.log
/home/ubuntu/mei_shell/uwsgi.log

locate uwsgi    
==>找到所有含有uwsgi的文件或者文件夹,就是找到路径中含有uwsgi
比如返回:  /home/uwsgi/nds.log

- 3 whereis: 查询程序名的搜索,只能查询到二进制文件

whereis grep
whereis nginx

-4 which :查询在PATH变量中指定的路径,搜索某个系统命令的的位置

返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

which grep 
==> /bin/grep

你可能感兴趣的:(find locate whereis which)