文件管理 · 2022年02月20日 0

locate命令 – 快速查找文件或目录

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@anycode ~]# locate /etc/sh /etc/shadow /etc/shadow- /etc/shells ``` 搜索/etc目录下以k开头的文件: ``` [root@anycode ~]# 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@anycode ~]# locate pwd /boot/extlinux/pwd.c32 /etc/.pwd.lock /usr/bin/pwd /usr/bin/pwdx /usr/include/pwd.h ```