前段时间做一个查找文件位置的小测试,才知道还有个locate命令,用起来比find快很多...
我用的fedora12上没有预装这个软件,只有yum安装了
命令:yum install mlocate
装上之后并不能立马使用,因为这个命令要依赖一个db数据文件
locate之所以比find快就是因为它把所有文件的位置都放在了这个db文件中
[root@root ~]# locate
locate: can not stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
[root@root ~]# updatedb #时间较长
[root@root ~]# ls /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db
这个时候再用locate命令就行了,支持正则表达式
使用方法:locate xx(要查找的文件名) -l num(要显示的行数)。当然这个文件名在系统中出现太多,就需要用到-l这个参数。不然等着刷屏吧。
正则使用参数:-r, –regexp REGEXP
更多的参数用man locate看吧
find有个很特别的命令参数-exec,可以执行其他的命令,很强大(在fedora 12上测试)
比如:find . -name *.o -exec rm -f {} +
就可以删掉搜索到的所有.o文件,有可这个命令就可以省很多事了~!
注:rm -f是要执行的命令,{}是find搜索到的集合,后面的+不可省略,意义暂未知,如果不加会出现下面的错误
find: missing argument to `-exec'