locate命令用於查找文件, 它比find命令的搜索速度快, 它需要一個數據庫, 這個數據庫由每天的例行工作
(crontab)程序來建立. 當們建立好這個數據庫後, 就可以方便地來搜尋所需文件了. 即先運行updatedb
(無論在那個目錄中均可, 可以放在crontab中)後在/var/lib/slocate/下生成slocate.db數據庫即可快速查找.
在命令提示符下直接執行updatedb命令即可.
例如查找相關字issue:
$ locate issue
/etc/issue
/etc/issue.net
/usr/man/man5/issue.5
/usr/man/man5/issue.net.5
它默認沒有掃描外接的移動硬盤或者掛載在/media下的其他分區. 以/etc/updatedb.conf文件為例, 內容如下:
-------------------------------------------------------------------------
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs
devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf"
-------------------------------------------------------------------------
第一行PRUNE_BIND_MOUNTS="yes"的意思是: 是否進行限制搜索.
第二行 # PRUNENAMES=".git .bzr .hg .svn"表示對哪些後綴的文件排除檢索, 也就是列在這裡面的後綴的
文件跳過不進行檢索. 不同後綴之間用空格隔開. 這個功能默認是關閉的(用#注釋掉了), 如果需要打開需將
#去掉.
第三行是排除檢索的路徑, 即列出的路徑下的文件和子文件夾均跳過不進行檢索. 其中/media目錄被屏蔽掉了.
第四行是排除檢索的文件系統類型, 即列出的文件系統類型不進行檢索.
只需要將第三行中的/meida刪除即可. 修改為PRUNEPATHS="/tmp /var/spool ", 重新運行updatedb,
再進行locate即可以對原來掛載在/media下的windows ntfs分區進行搜索.