How to add specific directories to "updatedb" (locate) search path?
With the "mlocate" implementation, use the
--database-root option, without pruning anything. In the updatedb(8) man page:
-U, --database-root PATH Store only results of scanning the file system subtree rooted at PATH to the generated database. The whole file system is scanned by default.
But you may need to use a separate output file (
--output) too. I'm not sure that you can merge both databases (you can try).
Other implementations may have similar options.
There's no option for that in
updatedb.conf. You'll have to arrange to pass options to
With updatedb from GNU findutils, pass
updatedb --localpaths '/ /media/win_c/somewhere/Music /media/win_c/somewhere/Photos'
With updatedb from mlocate, there doesn't appear a way to specify multiple roots or exclude a directory from pruning, so I think you're stuck with one database per directory. Set the environment variable
LOCATE_PATH to the list of databases:
updatedb --output ~/.media.mlocate.db --database-root /media/win_c/somewhere --prunepaths '/media/win_c/somewhere/Videos' export LOCATE_PATH="$LOCATE_PATH:$HOME/.media.mlocate.db"