diff options
Diffstat (limited to 'docs/USAGE.md')
-rw-r--r-- | docs/USAGE.md | 56 |
1 files changed, 44 insertions, 12 deletions
diff --git a/docs/USAGE.md b/docs/USAGE.md index e2cff44..70f8475 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -18,10 +18,9 @@ $ bfs ./completions/bfs.zsh ./docs/BUILDING.md ./docs/CHANGELOG.md -./docs/HACKING.md +./docs/CONTRIBUTING.md ./docs/USAGE.md ./docs/bfs.1 -./src/bfs.h ... ``` @@ -54,7 +53,7 @@ $ bfs -name '*.md' ./README.md ./docs/BUILDING.md ./docs/CHANGELOG.md -./docs/HACKING.md +./docs/CONTRIBUTING.md ./docs/USAGE.md ``` @@ -65,7 +64,7 @@ When you put multiple expressions next to each other, both of them must match: ```console $ bfs -name '*.md' -name '*ING*' ./docs/BUILDING.md -./docs/HACKING.md +./docs/CONTRIBUTING.md ``` This works because the expressions are implicitly combined with *logical and*. @@ -78,17 +77,16 @@ $ bfs -name '*.md' -and -name '*ING'` There are other operators like `-or`: ```console -$ bfs -name '*.md' -or -name '*.sh' +$ bfs -name '*.md' -or -name 'bfs.*' ./README.md -./tests/find-color.sh -./tests/ls-color.sh -./tests/remove-sibling.sh -./tests/sort-args.sh -./tests/tests.sh -./docs/CHANGELOG.md -./docs/HACKING.md +./completions/bfs.bash +./completions/bfs.fish +./completions/bfs.zsh ./docs/BUILDING.md +./docs/CHANGELOG.md +./docs/CONTRIBUTING.md ./docs/USAGE.md +./docs/bfs.1 ``` and `-not`: @@ -132,6 +130,40 @@ Unlike `-prune`, `-exclude` even works in combination with `-depth`/`-delete`. --- +### `-limit` + +The `-limit N` action makes `bfs` quit once it gets evaluated `N` times. +Placing it after an action like `-print` limits the number of results that get printed, for example: + +```console +$ bfs -s -type f -name '*.txt' +./1.txt +./2.txt +./3.txt +./4.txt +$ bfs -s -type f -name '*.txt' -print -limit 2 +./1.txt +./2.txt +``` + +This is similar to + +```console +$ bfs -s -type f -name '*.txt' | head -n2 +``` + +but more powerful because you can apply separate limits to different expressions: + +```console +$ bfs \( -name '*.txt' -print -limit 3 -o -name '*.log' -print -limit 4 \) -limit 5 +[At most 3 .txt files, at most 4 .log files, and at most 5 in total] +``` + +and more efficient because it will quit immediately. +When piping to `head`, `bfs` will only quit *after* it tries to output too many results. + +--- + ### `-hidden`/`-nohidden` `-hidden` matches "hidden" files (dotfiles). |