linux中locate命令,locate命令用法
定位允许用户在文件系统中快速搜索指定的文件。方法是首先建立一个包括系统中所有文件的名称和路径的数据库,然后在搜索时只需要查询这个数据库,而不需要真正深入到文件系统中。
在一般发行版中,数据库的建立是在crontab中自动执行的。
1.命令格式:定位[参数][文件]
2.命令功能:
在搜索数据库时,定位命令可以快速找到文件。数据库由updatedb程序更新,updatedb由cron守护进程定期建立。locate命令搜索数据库的速度比搜索整个硬盘数据的速度快。
但是,更糟糕的是,如果locate找到的文件是新创建或重命名的,可能就找不到了。默认值中,updatedb每天运行一次,可以通过修改crontab(etc/crontab)来更新默认值。
Locate被指定用于搜索合格的文件。它将转到存储文件名和目录名的数据库,查找符合模板样式条件的文件或目录。您可以使用特殊字符(如“*”或“?”)等等)来指定模板样式,比如指定模板为kcpa*ner,
Locate将查找所有以kcpa开头,以ner结尾的文件或目录。例如,如果名称是kcpartner,如果目录名称是kcpa_ner,它将列出目录中包括子目录在内的所有文件。
locate命令类似于find查找文件,但是locate首先通过更新程序建立硬盘中所有文件和目录数据的索引数据库,在执行loacte时直接搜索索引,所以查询速度会更快。
一般来说,索引数据库是由操作系统管理的,但是也可以直接发出update来强制系统立即修改索引数据库。
3.命令参数:
-e将从搜索中排除。
如果是1,则为-1。启动安全模式。在安全模式下,用户只能查看其权限内的文件。这会降低速度,因为locate必须从实际的文件系统中获取文件的权限数据。
-f排除特定的文件系统。例如,我们没有理由将proc文件系统中的文件放在数据库中。
-q安静模式,不会显示错误消息。
-n最多显示n个输出。
-r使用正则表达式作为搜索条件。
-o指定数据库的名称。
-d指定数据库的路径。
-h显示辅助信息。
-V显示程序的版本信息。
4.用法示例:
4.1查找与crontab相关的所有文件
[hduser0401@dev-l002782 ~]$找到crontab
/appcom/apps/crontab
/appcom/apps/crontab/log
/appcom/apps/crontab/shell
/appcom/apps/crontab/shell/kill 200 gjobs . sh
/appcom/apps-data/tmp/HD user 0401/crontab . txt
/etc/anacrontab
/etc/crontab
/home/hduser0401/crontab.txt
/usr/xjlz/crontab
/usr/lib/python 2.6/site-packages/SOS/plugins/crontab . py
/usr/lib/python 2.6/site-packages/SOS/plugins/crontab . pyc
/usr/lib/python 2.6/site-packages/SOS/plugins/crontab . pyo
/usr/share/man/man 1/crontab . 1 . gz
/usr/share/man/man 1p/crontab . 1p . gz
/usr/share/man/man 4/crontabs . 4 . gz
/usr/share/man/man 5/anacrontab . 5 . gz
/usr/share/man/man 5/crontab . 5 . gz
/usr/share/man/man 8/crontab _ selinux . 8 . gz
4.2搜索etc目录中所有以sh开头的文件。
[HD user 0401 @ dev-l 002782 ~]$ locate/etc/sh
/etc/影子
/etc/shadow-
/etc/shell
4.3在/usr/xjlz目录中搜索所有以Z开头的文件
[HD user 0401 @ dev-l 002782 ~]$ locate/usr/xjlz/z
/usr/xjlz/zcmp
/usr/xjlz/zdiff
/usr/xjlz/zegrep
/usr/xjlz/zfgrep
/usr/xjlz/zforce
/usr/xjlz/zgrep
/usr/xjlz/zip
/usr/xjlz/zip coat
/usr/xjlz/zipgrep
/usr/xjlz/zipinfo
/usr/xjlz/zipnote
/usr/xjlz/zipsplit
/usr/xjlz/zless
/usr/xjlz/zmore
/usr/xjlz/znew
/usr/xjlz/zsoelim
-最多显示5个输出。
[HD user 0401 @ dev-l 002782 ~]$ locate-n 5/usr/xjlz/z
/usr/xjlz/zcmp
/usr/xjlz/zdiff
/usr/xjlz/zegrep
/usr/xjlz/zfgrep
/usr/xjlz/zforce