tldr/pages/common/find.md

1.1 KiB

find

Find files or directories under a directory tree, recursively. More information: https://manned.org/find.

  • Find files by extension:

find {{root_path}} -name '{{*.ext}}'

  • Find files matching multiple path/name patterns:

find {{root_path}} -path '{{**/path/**/*.ext}}' -or -name '{{*pattern*}}'

  • Find directories matching a given name, in case-insensitive mode:

find {{root_path}} -type d -iname '{{*lib*}}'

  • Find files matching a given pattern, excluding specific paths:

find {{root_path}} -name '{{*.py}}' -not -path '{{*/site-packages/*}}'

  • Find files matching a given size range, limiting the recursive depth to "1":

find {{root_path}} -maxdepth 1 -size {{+500k}} -size {{-10M}}

  • Run a command for each file (use {} within the command to access the filename):

find {{root_path}} -name '{{*.ext}}' -exec {{wc -l}} {} \;

  • Find all files modified today and pass the results to a single command as arguments:

find {{root_path}} -daystart -mtime {{-1}} -exec {{tar -cvf archive.tar}} {} \+

  • Find empty files (0 byte) or directories and delete them verbosely:

find {{root_path}} -type {{f|d}} -empty -delete -print