Category:
Linux
ずっと前に void GraphicWizardsLair( void ); // さんが いまどきfindとxargsを使う時は-print0と-0を忘れずに というエントリを書かれていたのを読んでいたのですが、実例が無くて一瞬悩んだので、今更ですが備忘録として。
例 1:
まぁ、find . -exec rm {} + かな。find . | perl -nle unlink というのも高速らしいけど、
例 1:
$ touch "foo" "bar" "foo bar"例 2:
$ find . -name "foo bar" | xargs rm
$ touch "foo" "bar" "foo bar"どちらも "foo" "bar" "foo bar" という 3 つのファイルがあって、"foo bar" だけ消そうという意図で書かれたものですが、前者の場合は "foo" と "bar" が消えて "foo bar" が残ります。
$ find . -name "foo bar" -print0 | xargs -0 rm
まぁ、find . -exec rm {} + かな。find . | perl -nle unlink というのも高速らしいけど、
$ find . -print0 | perl -n0le unlinkの方が安全な気がする。
Comments