14

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 1

20

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'
1
  • 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .