关于linux:Linux之locate命令

46次阅读

共计 4410 个字符,预计需要花费 12 分钟才能阅读完成。

命令简介

locate(locate) 命令用来查找文件或目录。locate 命令要比 find -name 快得多,起因在于它不搜寻具体目录,而是搜寻一个数据库 /var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息。Linux 零碎主动创立这个数据库,并且每天自动更新一次,因而,咱们在用 whereislocate查找文件时,有时会找到曾经被删除的数据,或者刚刚建设文件,却无奈查找到,起因就是因为数据库文件没有被更新。为了防止这种状况,能够在应用 locate 之前,先应用 updatedb 命令,手动更新数据库。整个 locate 工作其实是由四局部组成的。

  • /usr/bin/updatedb 次要用来更新数据库,通过 crontab 主动实现的
  • /usr/bin/locate 查问文件地位
  • /etc/updatedb.conf updatedb 的配置文件
  • /var/lib/mlocate/mlocate.db 寄存文件信息的文件

如果零碎中没有此命令

//Centos
> yum install mlocate -y
//Ubuntu
> sudo apt-get install mlocate -y

首次应用须要执行updatedb, 不然会呈现locate: can not stat () /var/lib/mlocate/mlocate.db’: No such file or directory`

用法

locate [OPTION]... [PATTERN]...

命令参数

  • -e 将排除在寻找的范畴之外。
  • -1 如果 是 1.则启动平安模式。在平安模式下,使用者不会看到权限无奈看到 的档案。这会使速度减慢,因为 locate 必须至理论的档案零碎中获得档案的 权限材料。
  • -f 将特定的档案零碎排除在外,例如咱们没有必要把 proc 档案零碎中的档案 放在资料库中。
  • -q 宁静模式,不会显示任何谬误讯息。
  • -n 至少显示 n 个输入。
  • -r 应用正规运算式 做寻找的条件。
  • -o 指定材料库存的名称。
  • -d 指定资料库的门路
  • -h 显示辅助讯息
  • -V 显示程式的版本讯息

查找和 pwd 相干的所有文件

> locate pwd
/etc/.pwd.lock
/home/cpt/.local/share/fish/generated_completions/pwd.fish
/home/cpt/.local/share/fish/generated_completions/pwdx.fish
/root/.local/share/fish/generated_completions/pwd.fish
/root/.local/share/fish/generated_completions/pwdx.fish
/root/Python-3.6.4/Doc/library/pwd.rst
/root/Python-3.6.4/Doc/library/spwd.rst
/root/Python-3.6.4/Lib/test/test_pwd.py
/root/Python-3.6.4/Lib/test/test_spwd.py
/root/Python-3.6.4/Modules/pwdmodule.c
/root/Python-3.6.4/Modules/pwdmodule.o
/root/Python-3.6.4/Modules/spwdmodule.c
/root/Python-3.6.4/Modules/clinic/pwdmodule.c.h
/root/Python-3.6.4/Modules/clinic/spwdmodule.c.h
/root/Python-3.6.4/build/lib.linux-x86_64-3.6/spwd.cpython-36m-x86_64-linux-gnu.so
/root/Python-3.6.4/build/temp.linux-x86_64-3.6/root/Python-3.6.4/Modules/spwdmodule.o
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/golang/src/syscall/pwd_plan9.go
/usr/lib/modules/3.10.0-1062.9.1.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko.xz
/usr/lib/modules/3.10.0-1160.11.1.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko.xz
/usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko.xz
/usr/lib64/cracklib_dict.pwd
/usr/lib64/python2.7/lib-dynload/spwdmodule.so
/usr/lib64/python3.6/lib-dynload/spwd.cpython-36m-x86_64-linux-gnu.so
/usr/local/python/lib/python3.6/lib-dynload/spwd.cpython-36m-x86_64-linux-gnu.so
/usr/local/python/lib/python3.6/test/test_pwd.py
/usr/local/python/lib/python3.6/test/test_spwd.py
/usr/local/python/lib/python3.6/test/__pycache__/test_pwd.cpython-36.opt-1.pyc
/usr/local/python/lib/python3.6/test/__pycache__/test_pwd.cpython-36.opt-2.pyc
/usr/local/python/lib/python3.6/test/__pycache__/test_pwd.cpython-36.pyc
/usr/local/python/lib/python3.6/test/__pycache__/test_spwd.cpython-36.opt-1.pyc
/usr/local/python/lib/python3.6/test/__pycache__/test_spwd.cpython-36.opt-2.pyc
/usr/local/python/lib/python3.6/test/__pycache__/test_spwd.cpython-36.pyc
/usr/local/share/jcloud/jdog-monitor/deploy/kunlunmirror/9_de96bb875c9807de5e4a6e11fdea0b07/lib64/python3.6/lib-dynload/spwd.cpython-36m-x86_64-linux-gnu.so
/usr/local/share/jcloud/jdog-monitor/deploy/kunlunmirror/9_de96bb875c9807de5e4a6e11fdea0b07/lib64/python3.6/test/test_pwd.py
/usr/local/share/jcloud/jdog-monitor/deploy/kunlunmirror/9_de96bb875c9807de5e4a6e11fdea0b07/lib64/python3.6/test/test_spwd.py
/usr/sbin/unix_chkpwd
/usr/share/cracklib/cracklib-small.pwd
/usr/share/cracklib/pw_dict.pwd
/usr/share/fish/functions/__fish_pwd.fish
/usr/share/fish/functions/prompt_pwd.fish
/usr/share/fish/man/man1/prompt_pwd.1
/usr/share/fish/man/man1/pwd.1
/usr/share/man/man1/pwd.1.gz
/usr/share/man/man1/pwdx.1.gz
/usr/share/man/man8/unix_chkpwd.8.gz
/usr/share/man/mann/pwd.n.gz

搜寻 etc 目录下所有以 sh 结尾的文件

> locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

输入 locate 所应用的数据库文件的相干信息,包含该数据库记录的文件 / 目录数量等

> locate -S
Database /var/lib/mlocate/mlocate.db:
        289,742 directories
        516,673 files
        60,174,514 bytes in file names
        52,034,824 bytes used to store database

updatedb 的配置文件 /etc/updatedb.conf

> cat /etc/updatedb.conf 
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs fuse.glusterfs ceph fuse.ceph"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp /var/lib/ceph"
  • PRUNE_BIND_MOUNTS = “yes” #开启搜寻限度
  • PRUNEFS = #搜寻时不搜寻的文件系统
  • PRUNENAMES = #搜寻时不搜寻的文件类型
  • PRUNEPATHS = 搜寻时不搜寻的门路

原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站

正文完
 0