rmと正規表現で特定のディレクトリ以外を削除する方法

Linuxサーバーを運営してると「要らないフォルダがどんどん出来ていくなー。 でもこのフォルダは要るしな~」ということもよくあると思います。

そこで、正規表現で残したいディレクトリ以外を削除するコマンドを紹介。

「mydir」以外のディレクトリを削除

コマンドは次のようにls, egrep, rm というようにパイプで繋いでいきます。

# ls|egrep -v '^mydir$'|xargs rm -r

egrepコマンドでは「-v」オプションを指定することで正規表現の否定を表すことができる点がポイントですね。

もちろん、複数のディレクトリを残したければOR演算子で指定することができます。

# ls|egrep -v '^mydir|yourdir$'|xargs rm -r

お分かりかと思いますが、上記のコマンドは削除したいディレクトリ群がある場所までcdコマンドで移動した後に実行してくださいね。

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2011-04-13