このfind
コマンドは、oh-my-zshを使用するOSXでは期待どおりに機能しません。いくつかの例:
$ find . -name test
find: .: Invalid argument
$ find
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
$ find --version
find: illegal option -- -
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
$ find version
find: .: Invalid argument
同じ例が私のLinuxボックスで期待どおりに機能するので、ここで何が起こっているのかわかりません。これをデバッグする方法についてのアイデアはありますか?
答え1
Linuxではデフォルトで提供されているGNU findを使用しようとしていますが、Mac OS XにはBSD findが含まれており、違いがたくさんあるからです。
GNUをインストールするにはHomebrewが必要です。インストールは非常に簡単です。次の手順に従ってください。http://brew.sh/
その後、findutilsをインストールできます。
brew install findutils
Mac で Linux 環境をシミュレートするための詳細やその他のツールについては、次をご覧ください。https://apple.stackexchange.com/questions/69223/how-to-replace-mac-os-x-utilities-with-gnu-core-utilities
他のオプションは、BSD検索マニュアルページを読み、コマンドを調整することです。実行すると、man find
画面上部に「BSD Universal Command Manual」と表示され、実際にBSDが見つかったことを確認できます。