April 24, 2019

list all files in directory tree that contain a search string

find . -type f -print | xargs grep -li "find me"

  • October 21, 1999
  • By James Andrews
If you have a large directory tree and you are sure that a file is in there somewhere, and you know that the phrase "find me" (e.g.) is in what you are looking for, then a command line like the above is just what you need.

The find command filters out all directories and special files and prints a list of them to the pipe. The xargs command takes the piped list and makes it into an argument list for the grep. The -li options on the grep mean ignore case...so "FIND ME" or "find me" is matched, and list once means the output is a list of filenames which only mentions each file once.

Most Popular LinuxPlanet Stories