mdfindを使用して正確なファイル名を持つファイルを見つける

mdfindを使用して正確なファイル名を持つファイルを見つける

mdfind正しいファイル名でファイル名を取得するように求める方法はありますか?

パイプラインのある時点では、次の内容が表示されます。

(filenames are produced here) | while read f; do mdfind -name "$f" | grep -E "/$f";

2つの質問があります。

  • ファイル名に以下が含まれている場合+

    grep: repetition-operator operand invalid

  • ファイル名に括弧が含まれている場合、結果は空です。

この問題をどのように解決できますか?

ベストアンサー1

マニュアルページの機能を活用してください。 ;)

mdfindのマニュアルページは次のように言います。

 -literal    Force the provided query string to be taken as a literal query string, without interpretation.

このオプションがない場合、mdfind は「*」、「+」、「()」などの文字を正規表現として解釈します。

ファイル名のメタデータ属性はですkMDItemFSName。したがって、特定の名前のファイルを見つけるには、次の手順を実行します。

mdfind -literal 'kMDItemFSName = "somefile.txt"'

mdls /path/to/somefile.txtボーナスのヒント:以下を使用してファイルのメタデータを確認することもできます。

おすすめ記事