find の挙動が微妙に望ましくない
findutils-4.5.10 の find コマンドなのですが、微妙に動作が納得できないので備忘録。
なにもないディレクトリで、
$ touch foo bar
でファイルを作り、fooとbarという名前を出力するには
$ find . -name foo -or -name bar ./bar ./foo
で良いのですが、これに -print や -exec で処理しようとすると、
$ find . -name foo -or -name bar -print ./bar
のようになってしまい、全部が表示されない。configure オプションも特に指定していないのに、これで良いのかな?
POSIX の関係で -or の前が真になると、後は評価されないというのはわかるけど、それ以降のすべてのファイルについて評価されなくなるってのは、代替方法がないと困るんだよな。