diff --git a/pages/common/bfs.md b/pages/common/bfs.md new file mode 100644 index 0000000000..7b97ed4da3 --- /dev/null +++ b/pages/common/bfs.md @@ -0,0 +1,36 @@ +# bfs + +> Breadth-first search for your files. +> More information: . + +- Find files by extension: + +`bfs {{root_path}} -name '{{*.ext}}'` + +- Find files matching multiple path/name patterns: + +`bfs {{root_path}} -path '{{**/path/**/*.ext}}' -or -name '{{*pattern*}}'` + +- Find directories matching a given name, in case-insensitive mode: + +`bfs {{root_path}} -type d -iname '{{*lib*}}'` + +- Find files matching a given pattern, excluding specific paths: + +`bfs {{root_path}} -name '{{*.py}}' -not -path '{{*/site-packages/*}}'` + +- Find files matching a given size range, limiting the recursive depth to "1": + +`bfs {{root_path}} -maxdepth 1 -size {{+500k}} -size {{-10M}}` + +- Run a command for each file (use `{}` within the command to access the filename): + +`bfs {{root_path}} -name '{{*.ext}}' -exec {{wc -l}} {} \;` + +- Find all files modified today and pass the results to a single command as arguments: + +`bfs {{root_path}} -daystart -mtime {{-1}} -exec {{tar -cvf archive.tar}} {} \+` + +- Find empty files (0 byte) or directories and delete them verbosely: + +`bfs {{root_path}} -type {{f|d}} -empty -delete -print`