使`locate`能够搜索外部硬盘上的文件

Tim*_*Tim 7 removable-storage locate

如果我理解正确,数据库所locate依赖的只是内部硬盘分区上的文件。我想知道是否可以locate在外置硬盘上使用?

Gil*_*il' 7

locate 数据库通常配置为省略可移动磁盘上的文件,因为它们不能被假定为以后存在。它可以通过一个文件进行配置,例如/etc/updatedb.conf(位置取决于locate您使用的几个程序中的哪一个以及您的发行版如何配置它)。

对于可移动磁盘,最好将数据库保存在单独的文件中。跑

updatedb --localpaths=/media/my_removable_disk --output=/var/cache/locate/my_removable_disk.locatedb 
Run Code Online (Sandbox Code Playgroud)

更新数据库。添加/var/cache/locate/my_removable_disk.locatedb到环境变量中LOCATE_PATH;对于最近版本的 GNU locate,空路径组件代表默认路径,因此您可以使用

export LOCATE_PATH=:/var/cache/locate/my_removable_disk.locatedb
Run Code Online (Sandbox Code Playgroud)

如果您想将 locate 数据库保留在可移动磁盘上,请不要将路径添加到LOCATE_PATH,因为locate如果缺少某个数据库文件,则停止查找。包装脚本会更好:

locates () {
  locate "$@"
  for d in /media/*; do
    locate -d "$d/.locatedb" "$@"
  done
}
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,该命令对于 mlocate 用户来说有点不同: updatedb --database-root /media/my_removable_disk --output=/var/cache/locate/my_removable_disk.locatedb --prunepaths "" --prunefs " ” (3认同)

dai*_*isy 5

配置文件在这里:/etc/updatedb.conf,所以如果您没有添加任何内容,只需挂载您的硬盘,然后执行updatedb,那么您就可以在外部硬盘分区上搜索文件。