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コマンドで移動した後に実行してくださいね。
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】
¥3,450 (2025-04-16 14:42 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)新しいLinuxの教科書 第2版
¥2,970 (2025-04-16 14:42 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)Windowsユーザーのための これから始めるLinuxの本 (日経BPパソコンベストムック)
¥2,420 (2025-04-16 14:42 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)2011-04-13