Linuxなどでファイルを検索する場合はfindコマンドを使います。多くのコマンドがそうであるように、コマンドのオプションや引数の順番を覚えないと使いこなすことはできません。もっと十分さが欲しいときもあるでしょう。 そこで作られたのがfsqです。ファイルシステムへの問い合わせ言語です。

fsqの使い方

カレントディレクトリ以下でファイルサイズが10Kより大きくて1M未満のファイルを探します。

$ fsq "path where size > 10k and size < 1m"
.git/objects/pack/pack-65e857ebd65760f586546dc817d7aae4ba05132d.pack
y.go

さらに指定したパス(/usr)以下にあるファイルを検索する場合。

$ fsq "path in '/usr' where size > 10k and size < 1m"
/usr/bin/
/usr/bin/AssetCacheLocatorUtil
/usr/bin/BuildStrings
/usr/bin/CpMac
/usr/bin/DeRez
/usr/bin/GetFileInfo
/usr/bin/IOAccelMemory
/usr/bin/MergePef
/usr/bin/MvMac
/usr/bin/ResMerger
/usr/bin/Rez
/usr/bin/RezDet

もちろんfsqの使い方を覚える必要はありますが、問い合わせ言語風に使えるのは便利かも知れません。より入力がインタラクティブになったり、入力内容を解析してくれるようになると面白そうです。

fsqはGo製のオープンソース・ソフトウェア(BSD License)です。

upcrob/fsq: A tool for querying the file system with a SQL-like language.