2010年12月15日水曜日

MacOS Xではlocateを使うよりmdfindを使いたい

locateというと、Linuxなんかでファイルシステム上のファイルを記録したデータベースを使って瞬時にファイルを見つけ出す機能だが、MacOS Xにも似たような機能がある。Spotlightだ。mdfindはSpotlightを使ってCUIで検索を行うツール。
NAME
     mdfind -- finds files matching a given query

SYNOPSIS
     mdfind [-live] [-count] [-onlyin directory] [-name fileName] query

DESCRIPTION
     The mdfind command consults the central metadata store and returns a list of files
     that match the given metadata query. The query can be a string or a query expression.

こんな風に使う。
[NO]imac[~]$ mdfind -name stdlib.h
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/libsa/stdlib.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/stdlib.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/xlocale/_stdlib.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/tr1/stdlib.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdlib.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/xlocale/_stdlib.h
/usr/include/c++/4.2.1/tr1/stdlib.h
/usr/include/stdlib.h
/usr/include/xlocale/_stdlib.h