Kenichi Maehashi's Blog
脳内コアダンプ
find | xargs するときに、ファイル名に空白が入っていると危険、というお話
Sunday | July 12, 2009
|
ずっと前に 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 の方が安全な気がする。
|
| コメント (0)
|
<< 前ページ[1]
トップページに戻る
Copyright © 2006-2021 Kenichi Maehashi, All Rights Reserved.