How can I find a file with a specific name in bash. I want to search through the whole system. I tried with find, but that only work through one level.
1 Answer
No, find
by default traverses all available levels:
sudo find / -mount -name 'myfilename'
If you have a separate home partition, or a encrypted home, or a secondary hard drive, you may want to list their mount points too, next to /
, for example
sudo find / /home/enzotib /media/data -mount -name 'myfilename'
The -mount
option is needed to avoid to traverse mounted filesystems. Among these there are /proc
, /dev
and /sys
, that is convenient to skip.
An alternative to traverse all files, avoiding only these last three paths is
sudo find /!(proc|sys|dev) -name 'myfilename'
-
to find all files starting with "my" do: find . -name my\* (bash would interpret the star if there were no slash) Dec 2, 2011 at 20:53