Skip to content

locate 在linux下快速定位文档

--> -->

linux 下可以使用 locate 和 find 来查找文件,但是 locate 在定位时要比 find 快.

他们的区别:

locate 并不是穿梭于档案文件中查找,而是在数据库查找文件.

find 正好相反,他的查找要穿梭于档案文件中.

这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.

所以 locate 要查询实时数据,需要更新数据库.

locate -- u

使用格式:

zhangzhi@moke:~$ locate [-ir] keyword

-i 不区分大小写

-r 后面可以接收正则表达式

使用方法:

  1. 全局查找一个
zhangzhi@moke:~$ locate h

--> -->

数据非常快.

2.指定目录查找,以 xxx 开头的文件

zhangzhi@moke:~$ locate code/pgcharts/README
/Users/zhangzhi/code/pgcharts/README.md

指定文件目录 code/pgcharts 下查找 README 开头的文件.

不区分大小写:

zhangzhi@moke:~$ locate -i code/pgcharts/readme
/Users/zhangzhi/code/pgcharts/README.md

3. 指定目录查找,包含 xxx 的文件

zhangzhi@moke:~$ locate -i readme |grep code/pgcharts/
/Users/zhangzhi/code/pgcharts/README.md
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/alexandria-20150505-git/README
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/bordeaux-threads-0.8.3/README
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/esrap-20150302-git/README.org
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/md5-20130312-git/README
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/parse-number-1.4/README
/Users/zhangzhi/code/pgcharts/build/quicklisp/dists/quicklisp/software/py-configparser-20131003-svn/README
/Users/zhangzhi/code/pgcharts/web/codemirror-4.5/README.md
/Users/zhangzhi/code/pgcharts/web/highcharts/exporting-server/java/readme.md
/Users/zhangzhi/code/pgcharts/web/highcharts/exporting-server/phantomjs/readme.md
/Users/zhangzhi/code/pgcharts/web/images/README.md

这次查到 code/pgcharts 目录下包含了很多大小写的 readme 文件.

上面组合使用了 |grep 命令

什么是 grep ?

grep 是 linux 下强大的文本搜索命令.

它支持使用正则表达式搜索,并把匹配到的内容打印出来,回头可以详细说下这个命令.