Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Linux
ずっと前に void GraphicWizardsLair( void ); // さんが いまどきfindとxargsを使う時は-print0と-0を忘れずに というエントリを書かれていたのを読んでいたのですが、実例が無くて一瞬悩んだので、今更ですが備忘録として。

例 1:
$ touch "foo" "bar" "foo bar"
$ find . -name "foo bar" | xargs rm
例 2:
$ touch "foo" "bar" "foo bar"
$ find . -name "foo bar" -print0 | xargs -0 rm
どちらも "foo" "bar" "foo bar" という 3 つのファイルがあって、"foo bar" だけ消そうという意図で書かれたものですが、前者の場合は "foo" と "bar" が消えて "foo bar" が残ります。

まぁ、find . -exec rm {} + かな。find . | perl -nle unlink というのも高速らしいけど、
$ find . -print0 | perl -n0le unlink
の方が安全な気がする。

Comments

Leave Yours...
Name:
E-mail / URL (optional):
Comment:
Are You Robot?: