Using bash you can easily locate a file with the
locate command. For example say you are looking for the file mykey.pem:
Sometimes files have strange names for example you might have a file like
random7897_mykey_0fidw.pem. Let’s say you’re looking for this file but you only remember the mykey and pem parts. You could combine the
locate command with
grep using a pipe like this:
locate pem | grep mykey
Which would bring up all results which contain both of these pieces.
Note that not all systems have the
locate utility installed, and many that do have not enabled it.
locate is fast and efficient because it periodically scans your system and caches the names and locations for every file on it, but if that data collection is not enabled then it cannot tell you anything. You can use
updatedb to manually initiate the filesystem scan in order to update the cached info about files on your filesystem.
Should you not have a working
locate, you can fall back on the
find / -name mykey.pem -print
is roughly equivalent to
locate mykey.pem but has to scan your filesystem(s) each time you run it for the file in question, rather than using cached data. This is obviously slower and less efficient, but more real-time. The
find utility can do much more than find files, but a full description of its capabilities is beyond the scope of this example.