tldr/pages/common/find.md
Waldir Pimenta 261abcdd90 find: various improvements (#3124)
* find: various improvements

The information content of the page should be unchanged, but hopefully it's now easier to read
(and respects our length recommendations of 8 maximum examples).

The changes include:
- Make the `-mtime` example more intuitive, so it only needs to be shown once,
  and combine the `-delete` option with the first (now only) `-mtime` example
  (thus reducing the page size back to 8 examples)
- Fix a comma splice in the `-exec` example, and a missing "a" in the `-path` example
- Reorder the examples to provide a more consistent and intuitive sequence
  (e.g. by introducing `-iname` in an earlier example, and moving the `-exec` command down)

* clarify -size example description
2019-06-23 23:43:25 -03:00

960 B

find

Find files or directories under the given directory tree, recursively.

  • Find files by extension:

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

  • Find files by matching multiple patterns:

find {{root_path}} -name '{{*pattern_1*}}' -or -name '{{*pattern_2*}}'

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

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

  • Find files matching a path pattern:

find {{root_path}} -path '{{**/lib/**/*.ext}}'

  • 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:

find {{root_path}} -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 files modified in the last 7 days, and delete them:

find {{root_path}} -mtime {{-7}} -delete