MacOS mdfind/mdutil issue and updatedb command : how to index all the files on the /Volume (root /)

command linefinderspotlightterminalzsh

A simple question : on Linux, updatedb command which is launched a second time seems not to reindex all the hard disk.

On MacOS Catalina (or maybe for previous), it seems that the command sudo /usr/libexec/locate.updatedb reindexes all.

Is there an option for locate.updatedb to only update what's new ?

I thought about doing : sudo /usr/libexec/locate.updatedb -u but I am not sure.

mdfind is a great tool but has got no transparency about its dameons mds : I said this since suddenly on my MacOS, mdfind stopped finding recent files, and it was very frustrating. Moreover, it takes a long time to index all the Volume (several days in my case, 2TB HD).

So I wonder if locate.updatedb command that updates from what is already existing is possible ?

On Linux systems, where updatedb is performed, this command is very quick because the whole database is no reindexed.

I just want not to reindex all the /Volume at each time I launch locate.updatedb on MaOS.

UPDATE 1:

I have killed all mds and processes relaled to mdutil and mdfind. Then, I launched yesteray a :

mdutil -E / :

here what I get when I do a ps aux | grep mds :

$ psu | grep mds
root 9607 0.0 0.9 11835260 285804 ?? Ss 9:20PM 2:14.29 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mds_stores
root 9606 0.0 0.2 6866808 71984 ?? Ss 9:20PM 5:27.05 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
.

I don't understand why it doesn't return all files which normally should be found : example with mdfind -name README, it only return a partial of the expected result (nothing is displayed into my $HOME).

Moreover, the loop glass on right top indicates that indexing is fully carried out but from my opinion, this is too fast, I have 1.2TB of data of index : is it normal, what do you think about this ?

Any suggestion/explanation is welcome.

Best Answer

The updatedb program on macOS is a very different program than the updatedb program on Linux. In contrast to the Linux program, the macOS program does not attempt to reuse existing database data about directories that haven't changed.

There's no option for the macOS program that will make it behave like the Linux program.