locate 命令其实是 find -name 的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库 /var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb,还有的是 /var/lib/slocate/slocate.db,这个数据库中含有本地所有文件信息。
Linux 系统自动创建这个数据库,并且每天自动更新一次,所以使用 locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。
语法格式:locate [参数] [文件]
常用参数:
-d< 目录 > 或 –database=< 目录 > | 指定数据库所在的目录 |
–help | 显示帮助 |
–version | 显示版本信息 |
参考实例
搜索 /etc 目录下所有以 sh 开头的文件:
[root@linuxvip ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
搜索 /etc 目录下以 k 开头的文件:
[root@linuxvip ~]# locate /etc/k
/etc/kdump.conf
/etc/kernel
/etc/krb5.conf
/etc/krb5.conf.d
/etc/ksmtuned.conf
/etc/kernel/postinst.d
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh
查找和 pwd 相关的所有文件:
[root@linuxvip ~]# locate pwd
/boot/extlinux/pwd.c32
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
正文完
发表至: 📂文件管理
2019-04-18