Linux中一个快速查找文件和目录的命令

时间:2023-01-22 16:25:39

功能介绍:

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb ,还有的是/var/lib/slocate/slocate.db ,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

Linux中一个快速查找文件和目录的命令

 

语法格式:locate [参数] [样式]

常用参数:

-d<目录>或–database=<目录>

指定数据库所在的目录

–help

显示帮助

–version

显示版本信息

Linux中一个快速查找文件和目录的命令

 

参考实例:

显示帮助 :

[root@linuxcool ~]# locate --help
Usage: locate [OPTION]… [PATTERN]…
Search for entries in a mlocate database.
-A, --all only print entries that match all patterns
-b, --basename match only the base name of path names
-c, --count only print number of found entries
-d, --database DBPATH use DBPATH instead of default database (which is
/var/lib/mlocate/mlocate.db)
-e, --existing only print entries for currently existing files
-L, --follow follow trailing symbolic links when checking file
existence (default)
-h, --help print this help
-i, --ignore-case ignore case distinctions when matching patterns
-l, --limit, -n LIMIT limit output (or counting) to LIMIT entries
-m, --mmap ignored, for backward compatibility
-P, --nofollow, -H don't follow trailing symbolic links when checking file
existence
-0, --null separate entries with NUL on output
-S, --statistics don't search for entries, print statistics about each
used database
-q, --quiet report no error messages about reading databases
-r, --regexp REGEXP search for basic regexp REGEXP instead of patterns
--regex patterns are extended regexps
-s, --stdio ignored, for backward compatibility
-V, --version print version information
-w, --wholename match whole path name (default)
Report bugs to mitr@redhat.com.
显示版本信息:
[root@linuxcool ~]# locate --version
mlocate 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.
This program is provided with NO WARRANTY, to the extent permitted by law.

搜索/etc目录下所有以sh开头的文件:

[root@linuxcool ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

搜索/etc目录下以k开头的文件:

[root@linuxcool ~]# 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
Linux中一个快速查找文件和目录的命令

 

查找和pwd相关的所有文件:

[root@linuxcool ~]# locate pwd
/boot/extlinux/pwd.c32
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko
/usr/lib64/cracklib_dict.pwd
/usr/lib64/python2.7/lib-dynload/spwdmodule.so
/usr/sbin/unix_chkpwd
/usr/share/cracklib/cracklib-small.pwd
/usr/share/cracklib/pw_dict.pwd
/usr/share/man/man0p/pwd.h.0p.gz
/usr/share/man/man1/pwd.1.gz
/usr/share/man/man1/pwdx.1.gz
/usr/share/man/man1p/pwd.1p.gz
/usr/share/man/man3/lckpwdf.3.gz
/usr/share/man/man3/ulckpwdf.3.gz
/usr/share/man/man8/unix_chkpwd.8.gz
/usr/share/man/overrides/de/man1/pwdx.1
/usr/share/man/overrides/fr/man1/pwdx.1
/usr/share/man/overrides/uk/man1/pwdx.1
/usr/share/syslinux/pwd.c32
/usr/src/kernels/3.10.0-514.el7.x86_64/include/config/hpwdt
/usr/src/kernels/3.10.0-514.el7.x86_64/include/config/hpwdt/nmi
/usr/src/kernels/3.10.0-514.el7.x86_64/include/config/hpwdt/nmi/decoding.h