find 最强大,但参数也较多,需指定查找目录,如 find / -name“filename”; 但是通常不大用find 的!因为速度慢之外,也很操硬盘!
locate 是一个快速查找命令,有预先索引好的数据库,由于数据库是定时更新(如果查询不到,可以先更新数据库,使用命令updatedb(/usr/bin/updatedb)),因此,结果上可能会有迟滞和错误。(相当于“find-name”的另一种写法);
whereis 是一个根据环境变量(PATH)查找可执行文件的命令,返回多个结果;
which 同whereis,但是返回的只是第一个结果;
type 查看命令的类型,bash builtin,还是其他,亦可输出命令所在的的地址;
Find慢,优先使用whereis和locate。 locate是在数据库里查找,数据库每天更新一次。
范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的档案列出 # find / -mtime 0 # find / -mtime 3 ,意思是说今天之前的 3*24 ~ 4*24 小时之间 #-ctime n :将n*24小时内改变、新增的文件或者目录列出来 |
范例二:找出档名为 passwd 这个档案 # find / -name passwd |
范例三:将和passwd文件(或命令)相关的文件都查找出来 whereis passwd which grep which passwd |
范例四: 搜索etc目录下所有以sh开头的文件。 locate /etc/sh 搜索用户主目录下,所有以m开头的文件。 locate ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写。 locate -i ~/m |
type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。 type命令的使用实例: $ type cd 系统会提示,cd是shell的自带命令(build-in)。 $ type grep 系统会提示,grep是一个外部命令,并显示该命令的路径。 $ type -p grep 加上-p参数后,就相当于which命令。 |