この資料は jhspetersson による素晴らしいツール fselect のドキュメントを抄訳したものです。
SQLライクなクエリでファイルを検索
fselect [ARGS] COLUMN[, COLUMN...]
[from ROOT[, ROOT...]]
[where EXPR]
[order by COLUMNS]
[limit N]
[into FORMAT]
SQLライクなクエリを書く、それだけです。
fselectコマンド自体は、最初のキーワード(select
、つまり file select)のようなものです。でも、たまに後ろにselect
をつけるくらいなら問題ないでしょう。
次に、興味のあるカラムを与えます。ファイル名やパス、サイズ、修正日などが考えられるでしょう。使用可能なカラムの一覧はこちらを参照してください。任意のテキストでカラムを追加することができます(スペースを含む場合は引用符で囲むことを忘れずに)。いくつかの関数(集計とフォーマット)が用意されています。算術式を使うこともできます。
どこを検索するか?キーワード from
で指定します。カンマで区切って複数のディレクトリを指定することができます。from
を省略した場合は、カレントディレクトリが処理対象となります。
何を検索するか? where` を使って、任意の数の条件を指定できます。
order by
で、実際の SQL のように結果を並べることができる。すべてのカラムが順序付けに対応しており、asc
/ desc
パラメータや数値のショートカットもサポートされています。
limit
を使用すると、検索結果を制限することができます。キーワード into
を使用したフォーマットオプションがサポートされています。
もし、 >
や <
を含む演算子を使用したい場合は、クエリ全体を二重引用符(”.…”)
で囲むようにしてください。こうすることで、シェルや出力のリダイレクトからクエリを保護することができます。括弧や *
, ?
などの特殊なシェルメタキャラクタを含むクエリも同様です。
インタラクティブモードでは、どのようなメタキャラクタを使ってもかまいません。
検索対象のディレクトリをカンマ区切りで列挙しています。本当のSQLでは、このような構文はクロスプロダクトを作ることになります。ここでは、Aを検索して、次はBを検索して、といった具合です。
通常の括弧の代わりに中括弧を使用することができます。これは、シェルの落とし穴を少し回避するのに役立ちます。