find、locate、whereis、which和type
1. find
$ find . -name '*'
2. locate
很快速的搜寻档案系统内是否有指定的档案,比find要快很多
其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库(/var/lib/locatedb),而不必实际深入档案系统之中了
# locate /root/hbu8.0/bin/h
搜索/root/hbu8.0/bin/目录下(绝对路径),所有以h开头的文件
如果报错:
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
解决办法:
# updatedb
选项:
-o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件
-U<目录>:更新指定目录的slocate数据库
-v:显示执行的详细过程
updatedb 命令不会自动更新新挂载的磁盘,需要-U指定一下新挂载的磁盘
3. whereis
找到指定文件的源、二进制文件和手册等各部分
# whereis -b hbu-fd
- -b 搜索文件的二进制部分
- -m 搜索文件的手册部分
- -s 搜索文件的源部分
- -u 没有说明文档的文件
4. which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,搜索系统命令执行的到底是哪一个位置的命令
# which sh
5. type
用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的
# type cd
使用-p参数,相当于which命令
# type -p cd