Linux rmコマンドで消せないほど作ってしまったファイルを消す方法

2019.3.31

rmの限界

rmコマンドが受け取れる引数の数には限度があります。 大量にファイルを削除したい場合には多少テクニックを使う必要があります。 その方法を紹介します。

大量にファイルを生成してしまって消せなくなった

通常であれば、ファイルを生成してしまったディレクトリに移動して、次のコマンドを実行すれば、だいたいの場合は問題ないです。

rm -rf *

とするか、

rm -rf *.*

しかし、何万、何十万と、大量にファイルを作ってしまった場合、rmコマンドで受け付けられるパラメータの数を超えてしまって消せなくなってしまいます。

リストを取得して1個ずつ消す

この例では、cache~というファイルを大量に作ってしまったので、この方法で削除します。

「ls」コマンドの結果をgrepしてrmコマンドに流し込む方法になります。

ls -1 | egrep -e '^cache*$' | xargs rm

「find」コマンドの結果に対して削除する方法。

find ./ -name 'cache' | xargs rm

「xargs rm」を使用することで、「rm」コマンドに渡すパラメータの数を自動的に調整しながら実行してくれるようです。

Related.