How to find the path of a file based on its name?

For fast search (but not definitive):

locate -br '^settings.xml$'

From man locate:

   locate  reads  one or more databases prepared by updatedb(8) and writes
   file names matching at least one of the PATTERNs  to  standard  output,
   one per line.

   -b, --basename
          Match  only  the base name against the specified patterns.  This
          is the opposite of --wholename.
   -r, --regexp REGEXP
          Search for a basic regexp REGEXP.  No PATTERNs  are  allowed  if
          this  option  is used, but this option can be specified multiple
          times.

The ^ and $ ensure that only files whose name is settings.xml and not files whose names contain settings.xml will be printed.

You may need for the first time to run: updatedb (as root) to update/build the database of locate.


A slow but steady search through file-system, but Definitive.

find / -xdev -name settings.xml

It will take some time and you may get some permission errors but it will get there. If you've got some more idea where it may be located change the first directory from / to /where/you/guess

Tags:

Grep

Find