(O+P)ut

(O+P)ut

(O+P)ut = OutPut

【Mac】Spotlightの検索コマンドを使ってみた

Spotlightとは?

Spotlight とは「アプリ」「フォルダ」「ファイル」「メール」「イメージ」「Webページ」……などのコンピュータの内容をあらかじめインデックスしておくことで、コンピュータ内をすばやく検索できる機能です。

もうすこしエンジニア向けの記載を探すと、

Spotlight(スポットライト)とは、Mac OS X v10.4 Tigerから搭載されたSQLiteをベースとしたデスクトップ検索機能、およびその基盤技術のことである。

とあります。つまり、lsfindコマンドのように情報を取得・検索できるツールのようです。

さて、Spotlightにはlsfind の代わりにmdlsmdfindがあります。

使ってみた

さっそくmdlsコマンドを使ってみます。
例えばあるjpgの画像ファイルをmdlsで見てみると、以下のように情報が取得できます。

mdls hoge.jpg
kMDItemAcquisitionMake         = "Canon"
kMDItemAcquisitionModel        = "MG6100 series"
kMDItemBitsPerSample           = 32
kMDItemColorSpace              = "RGB"
kMDItemContentCreationDate     = 2015-01-03 03:06:08 +0000
kMDItemContentModificationDate = 2015-01-03 03:06:08 +0000
kMDItemContentType             = "public.jpeg"
kMDItemContentTypeTree         = (
    "public.jpeg",
    "public.image",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemCreator                 = "MP Navigator EX 4.0"
kMDItemDateAdded               = 2015-01-05 13:43:27 +0000
kMDItemDisplayName             = "hoge.jpg"

実は長いから後半を打ち切ったくらいで本当はもっと下にツラツラと出てきます。情報を見てると、商品名等も確認できます。

同様に、PDFファイルを対象として同コマンドを実行すると、

kMDItemNumberOfPages           = 6

といった項があり、これはページ数となります。

つまり、こちらを検索条件としてひっかけることも可能です。
pdfファイルがいくつかあるディレクトリの下で、

mdfind -onlyin ./ "kMDItemNumberOfPages > '数字'" 

上記コマンドを発行すれば、自分がいるディレクトリ下で数字ページ以上のpdfファイルを返してくれたりします。
こういうことができるという前情報を頭に入れておくと、いざファイルを探す時に便利かもしれないので備忘録として残しておきました。

以上です。