Gofis は、ファイル システム内のファイルを迅速に検索するための軽量のコマンド ライン ツールです。
Go で書かれており、並列処理 (ゴルーチン) を多用しているため、特に効率的です。
大規模なディレクトリやプロジェクトを操作する場合。
プロジェクトは GitHub で入手できます。
https://github.com/demensdeum/gofis
🧠 Gofis とは
Gofis は、名前、拡張子、または正規表現でファイルを検索するための CLI ユーティリティです。
find のような古典的なツールとは異なり、gofis は独自に設計されました
速度、読みやすい出力、およびディレクトリの並列処理に重点を置いています。
プロジェクトは MIT ライセンスに基づいて配布されており、自由に使用できます
個人的および商用目的。
⚙️ 主な機能
- ゴルーチンを使用した並列ディレクトリ トラバーサル
- ファイル名と正規表現で検索
- 拡張子によるフィルタリング
- 重いディレクトリ (.git、node_modules、vendor) を無視する
- 人間が判読できるファイル サイズの出力
- 最小限の依存関係と高速なビルド
🚀 インストール
動作するには Go がインストールされている必要があります。
git clone https://github.com/demensdeum/gofis
cd gofis
go build -o gofis main.go
ビルドしたら、バイナリを直接使用できます。
リリース ページには、Windows の最新バージョン用のスタンドアロン バージョンもあります。
https://github.com/demensdeum/gofis/releases/
🔍 使用例
ファイルを名前で検索します。
./gofis -n "config" -e ".yaml" -p ./src
クイック位置検索:
./gofis "main" "./projects" 50
正規表現を使用して検索します。
./gofis "^.*\.ini$" "/"
🧩 仕組み
Gofis は Go の競争モデルに基づいています。
- 各ディレクトリは個別の goroutine で処理されます
- セマフォを使用してアクティブなタスクの数を制限します
- チャネルは検索結果の送信に使用されます
このアプローチにより、CPU リソースを効率的に使用できます。
また、大きなファイル ツリーの検索が大幅に高速化されます。
👨💻 Gofis は誰に適していますか?
- 大規模なリポジトリを扱う開発者
- DevOps およびシステム管理者
- 端末から簡単に検索する必要があるユーザー
- Go での同時実行性の実践的な使用法を学習している人向け
📌 結論
Gofis は、1 つのことをうまく実行できる、シンプルですが効果的なツールです。
大規模なプロジェクトでファイルを頻繁に検索し、速度を重視する場合は、
この CLI ツールは一見の価値があります。