BLOGTIMES
2009/04/04

findでスペースが入っているファイルをまとめて削除する

  cli  sh 
このエントリーをはてなブックマークに追加

findで検索したファイルをまとめて削除するときには下記のようにすればよいのですが、ファイル名やディレクトリ名に空白が入っているとうまくいきません。

find . -type f -name '*.old' | xargs -t rm

なので、これまで半角スペースが入っているファイルをまとめて削除したいときには下記のようにしていたんですが、デリミタをヌルキャラクタ(\0)にするfindの-print0オプションとxargsの-0オプションを組み合わせて使うとすっきりかけることが判明。

find . -type f -name '*.old' | while read file ; do print "$file" rm "$file" done
find . -type f -name '*.old' -print0 | xargs -t -0 rm

findはオプションがとにかく多くて、機能のすべて暗記するのは不可能なわけで・・・・print0なんて使い道が分からなかったからこれまで全くのノーマークでした。まさかxargsと組み合わせて使うためのオプションだったとは。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2990
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン