web-dev-qa-db-ja.com

ターミナルからMacを検索しますか?

ターミナルを使用してMacを検索するコマンドはありますか?検索にgrepを使用しましたが、やや無反応になり、何も表示されません。

たとえば、「grep Files」(フォルダ名)と入力すると、空白行が出力されるだけで何も起こりません。

25
JFW

Spotlightで検索を実行するためにmdfindコマンドを使用することもできます。詳細 ここ

使用する mdfind -name searchtermsearchtermという名前のファイルを取得するため。使用する mdfind searchtermは、ファイル名とコンテンツの検索を実行します。

22
reg

特定の名前のファイルを検索する場合は、findを使用します

Manページは [〜#〜] here [〜#〜] で見つけるか、またはターミナルプロンプトでman findと入力して見つけることができます。

基本的に、findは指定した基準を満たすファイルを再帰的に探します。最も簡単な例:

find . -name file_name -print

これにより、現在のディレクトリから「file_name」という名前のファイルが検索され、以下が検索され、その名前のファイルが出力されます。

find ~ -name ".DS_Store" -delete

これにより、すべての.DS_Storeファイルが見つかり、削除されます。

名前、正規表現、日付で検索できます。 -exec述語を使用して、Unixの方法でファイルを操作できます。

アクションのより複雑なパイプラインの開始としてfindを使用することもできます。例:

find . -type f -print | egrep -i '\.m4a$|\.mp3$'

拡張子が.m4aまたは.mp3のすべてのファイルを検索します

find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l

これらのファイルの数が表示されます。

26
drewk

フォルダー全体を検索する場合は、grepで-rを使用します。

grep -r pattern folder/to/search

Findでは、xargsも使用できます。

find folder/to/search -name '*.txt' | xargs grep pattern

または、一度に2つのファイルを検索するため、ファイル名が指定されていることを確認します。

find folder/to/search -name '*.txt' | xargs grep -n2 pattern
5
Eric Darchis

grep は、パターンとファイル指定の両方が必要です。欠落している場合は、パターンとして渡されたものが使用され、標準入力を介してデータが検索されるのを待ちます。

より複雑なfilespecを使用する場合は、 find を使用します。

find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print