2017-07-18 4 views
0
誤動作-orとexec

を見つけます。コマンドは

私はこの

find . -name "*FOO*" -or -name "*foo*" -exec ls -ld {} \; 

のようにそれをexecがLSの構文を追加した場合、私は本当のUNIXホスト上でまったく同じコマンドを実行した場合のみ、小文字のfooという

と4を返します。それは、私が期待するように、上と下の両方を返します。

答えて

2

それだけでは、演算子の優先順位だ - 試してみてください。ご返信用

find . \(-name "*FOO*" -or -name "*foo*" \) -exec ls -ld {} \; 
+0

感謝を。興味深いことにOSXとUnixでは異なった動作をします。私が帰ったら、Linuxで試してみる。 – JimR

+0

時々、BSDと非BSDのOSに違いがありますが、私はあなたが大文字と小文字を区別しない(大文字小文字を区別する)ファイルシステムを持っていると推測しています。 OS X HFS +。とにかく、演算子の優先順位の通常のルールを尊重すれば、どこでも同じように動作するはずです。 –