12

アプリケーションのビルド プロセスの一部としてスクリプトを継承し、ビルド サーバー (Ubuntu Precise) で実行すると問題なく実行されますが、Mac で実行すると「不正なオプション -- t」が表示されます。問題のあるコマンドは単純です。それは次の呼び出しfindです。

find -type f -not -path [...]

テストの結果-type、私の Mac で問題があるのはこのオプションであることがわかりました。代わりに実行すると:

find ./ -type f -not -path [...]

それは動作しますが、どちらも Linux ボックスで (一見同等に) 動作します。findしたがって、私の質問は、OSX (BSD) のバイナリと Linux (GNU?)の間に大きな違いはありますか?findスクリプトへの変更 (最初にパスを追加./) は、まだ発見していないものを壊しますか?

4

1 に答える 1

13

標準では、パス(例./では)が必須であることが義務付けられています。 findMacOS では標準に従います。

GNU find(Linux で利用可能なもの) では、パスをオプションにすることができます。指定しない場合、現在のディレクトリがパスと見なされます。Linuxでは、 man find は言う

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

[...](オプションであることを示す内にパスが指定されていることに注意してください。

パスを指定することをお勧めします。

于 2013-07-09T13:08:02.033 に答える