concoquo

知ってると便利なMacでの検索

意外と使えるFinderの検索

ちょっと設定をいじるとかなり使えるコになるMacのFinder検索の話。

やる事は簡単。⌘+Fを押したら出てくるウィンドウに、検索したいアイテムの属性を設定するドロップダウンがあると思います。

そのドロップダウンの一番下にあるその他を選択して出てくる項目にチェックを入れるだけ。

右上の検索フィールドで絞り込みが出来ます。結構な数があるのですが、使えそうな属性項目をいくつか。

幅(ピクセル)、高さ(ピクセル)
幅と高さのピクセル数を指定して特定のサイズの画像を見つけられる。
他にもカラープロファイルのRGBやCMYKを指定することも可能。

ISO 感度、F 値、焦点距離
ISO感度や絞りや焦点距離を指定して、特定の状況で撮影した画像を検索できる。他にもプログラムモードや露出モードや露出時間やホワイトバランスなど細かい属性がある。

ファイルのラベル
ラベルの検索も可能。複数選択は出来ないみたい。。

不可視のファイル
一番使えるかもしれないのがこの属性。通常では検索結果に表示されない不可視ファイルを検索できる。.DS_Store、.svn、.localized、.git、Icon、Thumbs.dbなどの.で始まるファイルもちゃんと表示される。Windowsユーザに圧縮したファイルを送る時とかに、ディレクトリを指定して一度に削除したりできるのでかなり便利。

この生のクエリーという属性は少し特別で、キーワードと数値・文字列を組み合わせた数式を入力することで検索をするためのもの。この属性一つあれば何でも全ての項目をカバーできる、と思う。例としてkMDItemFSNameというキーワードでファイル名を検索してみるとこんな感じ。

デフォルトの名前検索ではずいぶんとぼんやりした結果しか得られないのだけど、kMDItemFSNameを使うと生のファイル名でしっかり検索してくれる。(なぜか日本語のファイル名の検索がうまくいかないんだけど。。)

*(アスタリスク)でワイルドカードを指定したり、ORAND検索も出来る。正規表現は使えないみたい。
書式は以下のような感じ

kMDItemFSName == 'A' || kMDItemFSName = B
kMDItemPixelWidth == 1000 && kMDItemPixelHeight >= 500

一行目はファイル名がAかBのどちらか、二行目は横幅が1000pxで高さが500px以上のファイルを検索してる。
=は一つでも二つでも同じ、値は引用符で囲んでも囲まなくても同じ結果が得られるらしい。(不確か)

他にはこんな検索の仕方も

//不可視ファイルでサイズ容量が1000000バイトより大きい
kMDItemFSInvisible == 1 && kMDItemFSSize > 1000000

//何かしらラベルに色がついている
kMDItemFSLabel > 0

//一時間以内に作成されたファイル
kMDItemFSCreationDate >= $time.now(-3600)

//最終変更日が2日以内?(不確か)
InRange(kMDItemFSContentChangeDate,$time.today(-2),$time.today)

$timeはミリ秒単位らしいけど、特定の日時を指定したいときはどうするのかなぁ…。奥が深いです。属性キーワードの一覧はAppleのリファレンスライブラリにありました。
Spotlight Metadata Attributes
数が多すぎて何が何やら把握しきれません。

Row queryを使った検索はSpotlightでも同じように使えます。問題はいちいち入力するのが面倒くさいってことですかねぇ。。何かいい方法ないかな。