# find vs locate

In terms of searching files in Linux, two the most popular tools are find and locate. Although there are significant differences between them.

According to man pages:

locate -- find filenames quickly

find -- walk a file hierarchy

locate program searches a regularly created database for all pathnames which match specified pattern. The database is updated by default once a day. This can be checked by looking for mlocate file in /etc/cron.daily

On the other hand, find searches through the directory tree given in command.

#### Summary

find is slower, but it searches for files in real time and has much more flexibility if we have to apply complex filtering.

locate uses read-only database which has indexes of the directory structure. So it brings to searching for a string in a file.

Remember, if file does not appear in locate search results, but do in find, you can update mlocate db manually by running updatedb