summaryrefslogtreecommitdiffstats
path: root/docs/USAGE.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/USAGE.md')
-rw-r--r--docs/USAGE.md56
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).