bfs機能•インストール•使用法•ビルディング•貢献•changelog
bfs 、深度最初ではなく幅を操作するUNIX findコマンドのバリアントです。それ以外の場合は、多くのバージョンのfindと互換性があります。
posix•gnu•freebsd•openbsd•netbsd•macos
findに慣れていない場合は、GNU Findマニュアルが適切な紹介を提供します。
bfs幅を操作します。これは通常、探しているファイルをより速く見つけることができます。次のディレクトリツリーを想像してください。
ヘイスタック
├)。深い
│└│。ですか?1
│└│。ですか?2
││。ですか?3
│└│。8
│└│。ですか... ...
└)。浅い
└··ックス。針
find 、あなたが探しているものを含むshallowものに到達する前に、 deepディレクトリツリー全体を探索します。一方、 bfs浅いものから深いものまでファイルをリストしているため、無関係なサブツリー全体を探索するのを待つ必要はありません。
bfs | find |
|---|---|
$ bfs haystack
haystack
haystack/deep
haystack/shallow
haystack/deep/1
haystack/shallow/needle
... | $ find haystack
haystack
haystack/deep
haystack/deep/1
haystack/deep/1/2
haystack/deep/1/2/3
haystack/deep/1/2/3/4
...
haystack/shallow
haystack/shallow/needle |
bfs 、互換性がありながら、 findよりも使いやすくしようとします。たとえば、 bfsあなたがその議論を置く場所についてあまりうるさいことです。
bfs | find |
|---|---|
$ bfs -L -name ' needle ' haystack
haystack/needle
$ bfs haystack -L -name ' needle '
haystack/needle
$ bfs -L haystack -name ' needle '
haystack/needle | $ find -L -name ' needle ' haystack
find: paths must precede expression: haystack
$ find haystack -L -name ' needle '
find: unknown predicate `-L'
$ find -L haystack -name ' needle '
haystack/needle |
bfs役立つエラーと警告を与えます。たとえば、 bfsタイプミスの修正を検出し、提案します。
$ bfs -nam needle
bfs: error: bfs -nam needle
bfs: error: ~~~~
bfs: error: Unknown argument; did you mean -name? bfsは、間違いをキャッチするのに役立つ強力な静的分析も含まれています。
$ bfs -print -name ' needle '
bfs: warning: bfs -print -name needle
bfs: warning: ~~~~~~~~~~~~
bfs: warning: The result of this expression is ignored.bfs 、一般的なタスクを容易にするいくつかのオプションを追加します。たとえば、式が一致するときはいつでも、 -exclude演算子はサブツリー全体でスキップします。 -exclude 、標準的な-pruneネアクションよりも強力で使いやすいです。比較する
$ BFS -NAME CONFIG -EXCLUDE -NAME .GIT
同等のものに
$ Find ! (-name .git -prune )- name config
追加の速記として、 -nohiddenすべての隠されたファイルとディレクトリをスキップします。 bfsが提供する拡張機能の詳細については、使用法のドキュメントを参照してください。
bfs 、オペレーティングシステム用にすでにパッケージ化されている場合があります。| Linux | macos |
|---|---|
Alpine Linux #apk bfsを追加します Arch Linux #Pacman -S BFS Debian/Ubuntu #aptインストールBFS Fedora Linux #DNFインストールBFS 紳士 #SYS-APPS/BFS EMERGE Gnu Guix #guixインストールbfs nixos #nix -env -i bfs void linux #xbps -install -s bfs | ホームブリュー $ brewインストールBFS MacPorts #ポートBFSをインストールします |
| BSD | |
FreeBSD #PKGインストールBFS OpenBSD #pkg_add bfs |
bfsを構築するには、いくつかの依存関係をインストールする必要がある場合があります。 bfsの唯一の絶対要件は、Cコンパイラ、GNU Make、およびBashです。これらはデフォルトで多くのシステムにインストールされており、他のほとんどのシステムに簡単にインストールできます。ビルディングソフトウェアに関するオペレーティングシステムのドキュメントを参照してください。
bfs 、その機能のいくつかについて、一部のシステムライブラリにも依存しています。いくつかの一般的なプラットフォームにそれらをインストールする方法は次のとおりです。
Alpine Linux
#APK ADD ACL {、 - dev} attr libcap {、 - dev} liburing-dev oniguruma-dev
Arch Linux
#Pacman -S ACL ATTR LIBCAP Liburing Oniguruma
Debian/Ubuntu
#apt install acl libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
フェドラ
#dnfインストールacl libacl-devel attr libcap-devel liburing-devel oniguruma-devel
nixos
#nix -env -i acl attr libcap liburing oniguruma
void linux
#xbps-install -s acl- {devel、progs} attr-progs libcap- {devel、progs} liburing-devel oniguruma-devel
ホームブリュー
$ brew install oniguruma
MacPorts
#ポートoniguruma6をインストールします
FreeBSD
#PKG Onigurumaをインストールします
これらの依存関係は技術的にオプションですが、強く推奨されています。それらを無効にする方法については、ビルドドキュメントを参照してください。
bfsを構築できます。リリースの1つをダウンロードするか、Git Repoをクローンします。その後、実行します
$ ./configure
$ make
これにより、 ./bin/bfs BFSバイナリが構築されます。テストスイートを実行して、正しく機能することを確認してください。
$ make check
速度に興味がある場合は、代わりにリリースバージョンを作成することをお勧めします。
$ ./configure --enable-release
$ make
最後に、グローバルにインストールしたい場合は、実行してください
# make install