如果我理解正确的话,数据库locate
依赖的只是内部硬盘分区上的文件。我想知道是否可以locate
在外部硬盘上使用?
答案1
定位数据库通常配置为忽略可移动磁盘上的文件,因为不能假定它们稍后会存在。它可以通过一个文件进行配置,例如/etc/updatedb.conf
(位置取决于locate
您使用的几个程序中的哪一个以及您的发行版如何配置它)。
对于可移动磁盘,最好将数据库保存在单独的文件中。跑步
updatedb --localpaths=/media/my_removable_disk --output=/var/cache/locate/my_removable_disk.locatedb
更新数据库。添加/var/cache/locate/my_removable_disk.locatedb
到环境变量LOCATE_PATH
;对于 GNU 定位的最新版本,空路径组件代表默认路径,因此您可以使用
export LOCATE_PATH=:/var/cache/locate/my_removable_disk.locatedb
如果您想将定位数据库保留在可移动磁盘上,请不要添加 的路径LOCATE_PATH
,因为locate
如果其中一个数据库文件丢失,则会停止查找。包装脚本会更好:
locates () {
locate "$@"
for d in /media/*; do
locate -d "$d/.locatedb" "$@"
done
}
答案2
配置文件在这里:/etc/updatedb.conf
,所以如果您没有添加任何内容,只需挂载硬盘,然后执行updatedb
,那么您就可以搜索外部硬盘分区上的文件。