How to find files via the OS X Terminal
If you need to search for files in OS X, one option it is to use the OS X Terminal application and some of its services.
There several ways to find files in OS X, the most popular of which are GUI-based routines such as the Spotlight menu and the Finder search, both of which offer quick access to the system's metadata search index. However, there are other options for accessing this index and otherwise finding files you might be interested in locating.
Of course besides Apple's GUI options there are some third-party searching tools available; however, without these the other option in OS X is to use the Terminal, which can benefit both Terminal and GUI-based routines.
The first option in the Terminal is the classic "find" command that is common to many Unix systems, which will recursively walk a specified folder hierarchy and search items for a given name pattern. The find command has a number of options you can use to narrow down search results, and these can be looked up on its manual page, but the basics for finding a file are to specify the starting path and the name, such as the example here to locate a file called "test.txt" starting in the Users directory:
find /Users -name "test.txt"
Since the find command walks through the filesystem hierarchy, it may take a long time to complete, and if you specify the root folder only (without using flags to prevent recursion), it may recurse through the /Volumes/Macintosh HD/ mount point directory repeatedly and never end the search.
Beyond the find command are two that offer indexed search results. The first of these is the "locate" command, which will build a database of system resources and then allow you to find them by simply typing the following command:
In this command, NAME can be any partial file name and the command will output the full path to any item that includes this name. The locate command does require a properly built "locate" database, which Apple blocks by default in OS X; however, you can enable the launch daemon that regularly builds and updates the locate database with the following command:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
After this command is run, after a while the locate database will be assembled and be ready to use, but once it's completed you can use the locate command to search for numerous system files that you might know of by name. Do keep in mind that this command will only search for system files and will not index the user directories for finding personal files.
The final command is the "mdfind" command, which will locate files on your system that have been indexed for use with Spotlight. This command is arguably the more thorough of the two prior commands, as it will search both user and system files by default, and also offer options to search by file name and by file content, just like Spotlight searches.
To use this command, simply run it as follows; it will output a list of full paths to the files that include the search term:
As with all of these commands, the mdfind command has a number of additional options that can be implemented for limiting and customizing its search scope, which can be looked up in the mdfind manual page.
With these commands, you can easily output the full path to files you may be interested in locating, and then be able to access them either in the Finder or use the full path in subsequent Terminal commands. To reveal items in the finder, simply triple-click one of the paths to select it, and then right-click the selection and choose "Reveal in Finder" from the Services contextual submenu.