linux 查找文件的命令

一、which
shell

[root@lb01 ~]# which passwd
/usr/bin/passwd
# which - shows the full path of (shell) commands. 
# 显示命令的全路径


二、whereis数据库

[root@lb01 ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz
# whereis - locate the binary, source, and manual page files for a command
# 为命令:定位二进制文件、源文件、man page文件

三、locate缓存

[root@lb01 ~]# locate passwd
/etc/passwd
/usr/bin/passwd
# locate - find files by name
# 根据名字找出文件名,只要含有关键字的,所有找出来

updatedb# 使用这条命令更新缓存的数据库
/var/lib/mlocate/mlocate.db# 默认缓存的数据库文件
The database searched by default.


例子:bash

[root@lb01 ~]# touch /etc/chen.txt# 建立新文件
[root@lb01 ~]# locate chen.txt# 找不到,由于还没缓存到/var/lib/mlocate/mlocate.db
[root@lb01 ~]# updatedb # 强制刷新缓存的数据库
[root@lb01 ~]# locate chen.txt# 能够找到了,并且很快,由于读取的是缓存数据库,并无去读取磁盘
/etc/chen.txt


四、findide

[root@lb01 ~]# find / -name chen.txt# find搜索文件系统,实时查找,效率低,由于搜索的是磁盘,但功能最强大
/etc/chen.txt
[root@lb01 ~]# find / -name passwd
/tmp/oldboy/passwd
/etc/passwd
/etc/pam.d/passwd
/usr/bin/passwd