Skip to content

Instantly share code, notes, and snippets.

@quangkeu95
Last active November 17, 2017 07:25
Show Gist options
  • Save quangkeu95/8dd8ee7a9595e6d858e516ede0497f9a to your computer and use it in GitHub Desktop.
Save quangkeu95/8dd8ee7a9595e6d858e516ede0497f9a to your computer and use it in GitHub Desktop.

Find file path base on filename

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.

DNS package

On Ubuntu

apt-get install -y dnsutils

On Centos

apt-get install -y bind-utils

man bash

$!

$! contains the process ID of the most recently executed background pipeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment