Macでfind -type f | xargs grepと同じことができないか検証してみた

mac

Macでvim等を使ってcliベースの開発をしていると、Linuxでカレントディレクトリから特定のディレクトリ内を文字列検索する時によく使っていた

がそのまま使えずモヤっとしたことがあった。そのため、Macのfindでも同じことができないかと思い、検証してみた。

Linuxのfind -type f | xargs grepの意味おさらい

別記事にまとめたので、そちらを参照されたし。

find -type f | xargs grep XXXXXのコマンドをおさらいしてみる

MacのfindコマンドとLinuxのfindコマンドの違い

Macに標準でインストールされているfindコマンドとLinuxで使えるfindコマンドの違いは何か?答えは検索対象のパス指定が必須か否かだった。Macのfindコマンドは検索対象のパス指定が必須で、そのためMacでfind -type f | xargs grepを実行すると

こんな感じで怒られてしまう。正しくは

のように、カレントディレクトリを意味する.か./をつけてあげるとLinuxのfindと同様の挙動をするようになる。また、Linuxのfindもパスを.か./で指定した場合、findだけのコマンドと同じ挙動をする。

というより、本来ならfindコマンドを使う時はMacだろうがLinuxだろうが、パスを指定して使うほうがデフォルトなのではないかと思った。