August 03, 2020
Quick usage examples of "find" on the command line
Search recursively for file names using a regex pattern. Use -name
for a case sensitive search.
find . -iname '*<partial_name>*'
To exclude results located in certain paths, use -not -path
:
find . -iname '*<partial_name>*' -not -path "*/.venv/*"
Execute a command with every result found.
find . -iname '*.md' -type f -exec ls -lh {} \;
List all files in the current folder (recursively) that contain every string mentioned in the search parameters. You can chain as many search terms as you want. Just remember that the last grep
needs to have -l
as a parameter instead of -q
.
find . -type f -exec grep -q '<string1>' {} \; -exec grep -q '<string2>' {} \; -exec grep -l '<string3>' {} \;
Note: every command needs to be terminated by ;
or +
. But these signs may need to be escaped as in ;
or \;
. Outputs given by find
will be placed on {}
. Multiple uses of -exec
are allowed.