查找
locate filename
上面的命令用于查找系统中包含filename
的文件名,速度非常快,可以说是秒查,为什么呢?原因在于所有文件的路径都存储在了数据库中,系统每天都会更新一次数据库,存储在/var/lib/mlocate/mlocate.db
,不同系统位置可能不一样。所以,新建的文件不会立即用locate
查找到,所以你可能需要手动更新这个数据库;
updatedb #手动更新数据库
ls /var/lib/mlocate/mlocate.db #mlocate.db的路劲
locate mlocate.db #查找mlocate.db的路径
配置
你会发现/tmp
中的文件不会被搜索到,原因/etc/updatedb.conf
中配置了搜索条件。
sudo vim /etc/updatedb.conf # 打开配置文件
PRUNE_BIND_MOUNTS="yes" # 开启搜索限制
PRUNENAMES=".git .bzr .hg .svn" # 不搜索这些文件名后缀
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs" # 不搜索这些文件路径
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs" # 不搜索这些文件系统