findのdeleteオプションはマイナーなの?

2015/3/19作成

最近めっきりmanを引くことがなくなって、コマンドのオプションを調べるときでもぐぐってしまうことが多いです。それでJMにたどり着いたりするので、なにやってるんだろうという気もしないでもないのですが。

JMではなく技術ブログにたどり着くことも多々あるのですが、そうしたなかでfindコマンドでちょっと気になったことがありました。使用例としてファイル削除を挙げているのですが、deleteオプションを使っている人が意外と少ない。見かけたのは

$ find . -exec rm -f {} ¥
$ find . | xargs rm -f
$ rm `find . `

の三つかな。これはいずれも

$ find . -delete

で置き換え可能ですよね。deleteオプションが存在しないfindというのは、多分2015年現在では絶滅したと考えていいように思います。

1番目と2番目はともかく、3番目は見つかるファイルの数が増えるとコマンドラインの文字数制限を越えてしまうので使用例としてはあまり適切ではないですよね。明らかにファイル数が少ない場合には私もよく使う方法ではありますが。

えーと何が言いたいのかといいますと、紹介するならスマートな方法も紹介しておくと、閲覧者に対して優しいのではないかなということ。やり方は一つではないのでいろんな方法があってもいいんですが、どうせみんなで知識を共有するなら、よりベターな知識を共有したいじゃないですか。だからって知識が十分でない人は情報を発信してはいけないというわけでもないのですが。そもそも私が知識完璧ではないので、そんなことを言ったら情報発信する資格はないことになってしまうし。不十分な知識でも共有することによって、他の人がよりブラッシュアップしていくことができる。だからこのエントリーは先のブログを非難したいわけではなくて、ベターな知識の提案なんですね。もちろんこのエントリーに対してさらに別の方がよりベターな知識を共有していただければ、それはさらによいことだと思いますし。

なんか余談の方が長くなってしまいましたが、findにはdeleteオプションもありますよという話でした。