centOS系统找到locate命令及locate搜索不到存在的文件

一、文件搜索命令

1.1 文件搜索命令locate

在后台数据库中按文件名搜索,只可以搜索文件名,搜索功能简单,但搜索速度快,命令格式为:

locate [文件名]

问题一:centOS系统找不到locate命令

locate: command not found

解决方法:
原因是系统中没有安装mlocate这个包。
* 第一步:安装mlocate包

yum -y install mlocate

会出现下面正在安装该包的信息,等待一会,直到出现Complete!就表示安装完成了。

* 第二步:更新数据库

updatedb
* 第三步:就可以使用locate命令了

[root@localhost ~]# locate install.log
/root/install.log
/root/install.log.syslog

问题二:当在某些目录下创建文件,然后更新数据库之后,并不能用locate命令查找到

原因是系统在更新数据库的配置文件中,设置了一些搜索限制,所以搜索不到,输入如下命令可以看到:

[root@localhost ~]# vi /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 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"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

/etc/updatedb.comf配置文件

  • PRUNE_BIND_MOUNTS = “yes” 表示开启搜索限制,如果为’no’则表示不开启搜索限制;
  • PRUNEFS = 表示搜索时,不搜索的文件系统;
  • PRUNENAMES = 表示搜索时,不搜索的文件类型;
  • PRUNEPATHS = 表示搜索时,不搜索的路径;
    不只locate命令遵循搜索限制,whereis与which也遵循

1.2 whereis与which命令

whereis与which命令是用来搜索命令的

1.3 find命令

find命令功能强大,搜索速度相对较慢,而且搜索范围广

你可能感兴趣的:(linux)