Spotlight and the locate command don't search *all* folders

There are several places in Mac OS X, that don't get indexed by spotlight or the terminal locate command.

Is there a way to change that?

How can I search in places like /private?


Solution 1:

locate should include system files (if you enable database creation -- it's turned off by default, at least in Snow Leopard -- with the command sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist).

Spotlight does index system files, but normally leaves them out of the search results because most users want to search their files, not the OS internals. If you want to see system files in the results, you have to enable them:

  1. Start a Spotlight search by entering something in the search field in a Finder window toolbar.
  2. Add an additional search criterion by clicking the "+" button on the right.
  3. The new criterion selector will start saying something like (Kind) is (Any). Select "Other" from the attribute ("Kind") pop-up menu.
  4. This'll open a dialog with a huge list of searchable attributes, with checkboxes to control whether they appear in the standard criterion pop-up. Enable the "System Files" and "File invisible" attributes.
  5. Now select "System Files" from the attribute pop-up, and "are included" from the next one. If you want/need to, you can also add another search criterion to include/exclude invisible items (this doesn't seem to be necessary to search /private, even though it's invisible).
  6. You should now see system files in the listed results.

Note that including these options in the pop-up menu is permanent, but actually selecting them has to be re-done for each search (i.e. next time you search, you only get to skip steps 3 and 4).

Solution 2:

find /private -name *thethingimlookingfor*

It's not indexed but it will search :)