Repolode
tavianator

tavianator/bfs

深い階層より浅い階層のファイルを先に表示する、POSIXやBSD/GNU find互換のUNIX findコマンドの幅優先版。

スター
1,282
フォーク
44
未解決の Issue
15
最終コミット
9 日前

これは何?

bfsはUNIXのfindコマンドの派生版で、ディレクトリツリーを深さ優先ではなく幅優先でたどります。浅い階層から深い階層の順にファイルを表示するため、探しているファイルにたどり着くまで、関係のない深いサブツリーを最後まで検索するのを待つ必要がありません。

POSIX、GNU、FreeBSD、OpenBSD、NetBSD、macOSなど、多くのfind実装との互換性を目指しています。さらに、引数を任意の順序で指定できる、オプションのタイプミスに修正候補が表示される、結果が無視される式を静的解析で警告するといった、よくある作業を簡単にする機能も備えています。また、サブツリー全体をスキップする-exclude演算子と、隠しファイルをスキップする-nohiddenも追加されています。

bfsはCで書かれており、Linux、macOS、BSD向けの多くのパッケージマネージャーから入手できます。configureとmakeを使ってビルドできます。ACL、attr、libcap、liburing、onigurumaなどのシステムライブラリを任意で利用すると、追加機能を有効にできます。

主な機能

  • 01浅い階層の一致を深いサブツリーより先に表示する、幅優先でのファイル検索。
  • 02厳格なfindとは異なり、オプションや式を柔軟な位置に指定可能。
  • 03入力を間違えた引数の修正候補を提示。
  • 04結果が無視される式を警告。
  • 05サブツリー全体をスキップする-excludeと、隠しファイルをスキップする-nohiddenを提供。

ユースケース

  • 大規模なプロジェクトツリーで、目的のファイルが何階層目にあるかわからないときに探す。
  • 使い慣れた述語やオプションを維持したまま、スクリプト内のfindを置き換える。
  • -excludeで.gitなど不要なフォルダーをスキップしながら、ディレクトリツリーを検索する。

クイックスタート

  1. 1

    macOSでHomebrewを使ってインストール

    brew install bfs
  2. 2

    または、Linuxディストリビューションのパッケージマネージャー(例:Arch Linux)からインストール

    pacman -S bfs
  3. 3

    またはソースからビルド:リリースをダウンロードするかリポジトリをクローンし、configureとmakeを実行

    ./configure && make

使う前に知っておきたいこと

  • ソースからのビルドには、Cコンパイラ、GNU make、Bashが必要です。すべての機能を利用するには、追加でシステムライブラリが必要な場合があります。

収録されている特集

トピック

よくある質問

bfs とは?
深い階層より浅い階層のファイルを先に表示する、POSIXやBSD/GNU find互換のUNIX findコマンドの幅優先版。 bfsはUNIXのfindコマンドの派生版で、ディレクトリツリーを深さ優先ではなく幅優先でたどります。浅い階層から深い階層の順にファイルを表示するため、探しているファイルにたどり着くまで、関係のない深いサブツリーを最後まで検索するのを待つ必要がありません。
bfs は無料で使えますか?ライセンスは?
bfs は 0BSD ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
bfs は今もメンテナンスされていますか?
活発にメンテナンス中。bfs の最終コミットは 2026年10月13日 です。
bfs は何に使えますか?
大規模なプロジェクトツリーで、目的のファイルが何階層目にあるかわからないときに探す。 使い慣れた述語やオプションを維持したまま、スクリプト内のfindを置き換える。 -excludeで.gitなど不要なフォルダーをスキップしながら、ディレクトリツリーを検索する。
bfs のインストール方法は?
macOSでHomebrewを使ってインストール: brew install bfs または、Linuxディストリビューションのパッケージマネージャー(例:Arch Linux)からインストール: pacman -S bfs またはソースからビルド:リリースをダウンロードするかリポジトリをクローンし、configureとmakeを実行: ./configure && make
bfs はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tavianator/bfs

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト