Ipad

コマンドラインからファイルを検索する

コマンドラインからファイルを検索する

Search for files from the command line

ファイルシステム内で特定のドキュメントやファイルを検索するのは簡単で高速です。ほとんどのユーザーにとって、メニューバーからSpotlightを使用するのが最適ですが、Spotlightが動作しない、パラメータを追加する必要がある、ターミナルで作業している、リモートマシンで操作している、あるいは別の検索機能を使いたいといった状況も考えられます。

幸運なことに、2つの異なるトリックを使ってコマンドラインから直接ファイルやフォルダを検索する方法をご紹介します。1つ目の方法はOSに依存しないため、Mac OS X、Linux、BSD、その他多くのUnix系OSで検索機能を使用できます。2つ目の方法は、Mac専用のコマンドラインからのファイル検索モデルを利用する方法です。さあ、読み進めて、これらの便利な機能の使い方を学びましょう。

find を使ってコマンドラインからファイルを検索する

find コマンドは非常に高速で使いやすく、Unix の世界から直接来ているため、Linux だけでなく Mac OS X でも動作します。プラットフォーム間で一貫性のあるものを学習したい場合は、find が適しています。

最も基本的な場合、 find は次のように使用できます。

find path parameters

たとえば、次のようにして、ユーザーのホームディレクトリ内で名前に「screen」を含むものを見つけることができます。

find ~ -iname "screen*"

大きな戻り値が予想される場合は、次のように結果を more にパイプすることもできます。

find ~ -iname "screen*" | more

もちろん、ディレクトリ内のどこかに埋もれている特定のファイルを見つけることもできます。例えば、ユーザーライブラリフォルダ内の特定のplistファイルを探す場合:

find ~/Library/ -iname "com.apple.syncedpreferences.plist"

ルート ディレクトリおよび現在のユーザー権限の外部を検索するには、find の前に 'sudo' を付ける必要があります。find は式もサポートしており、非常に具体的な一致、ワイルドカード、シーケンス、その他の高度なオプションを検索できます。

find は非常に強力ですが、その強力さゆえにすぐに複雑さが増します。そのため、コマンドライン初心者のユーザーには、従来の mdfind コマンドの方が適していると考えられます。

mdfind を使ってコマンドラインでファイルを検索する

mdfind は Spotlight のターミナルインターフェースです。つまり、Spotlight 自体が無効化されている場合、何らかの理由で機能していない場合、あるいはインデックスを再構築している場合は動作しません。ただし、Spotlight が意図したとおりに動作している場合、mdfind は非常に高速で効率的であり、よりユーザーフレンドリーです。

最も基本的なレベルでは、mdfind は次のように使用されます。

mdfind -name FileName

たとえば、「Photo 1.PNG」のすべての出現を検索するコマンドは次のようになります。

mdfind -name "Photo 1.PNG"

mdfindはSpotlightに似ているため、ファイルやフォルダの内容から特定のファイルを検索することもできます。誰かの名前を含むすべてのドキュメントを検索するには、次のようにします。

mdfind "Will Pearson"

find コマンドと同様に、次のように多数のファイルを並べ替える場合は、結果を more に送信すると便利です。

mdfind "Sent from my" | more

mdfind は -onlyin フラグを使用して特定のディレクトリに制限することもできます。

mdfind -onlyin ~/Library plist

最後に、「locate」コマンドもあります。これも非常に強力で、find と連携できますが、個別に有効にする必要があります。

コマンドラインで他に便利な検索テクニックやファイルの場所を特定する方法をご存知ですか?ぜひコメント欄で共有してください。