気まぐれSE日記

地方でエンジニアしてます

大量のディレクトリ・ファイルをrm -rfで一気に消したい


rm -rf * でファイルを一気に消す場合、ファイル数が32767を超えると「引数リストが長すぎます」とか怒られて消せない仕様があります。


エラーの通り引数が長すぎるのが原因ですが
xargsコマンドを使うとイイよというのが、ネットでは載っていたので



ls ディレクトリ | xargs rm -rf


と、やってみるも結局、ls コマンドも32767の壁があって同様のエラーとなりNG。


そこで教えてもらったのがecho コマンドでした。echo "ディレクトリ" とすると、その階層のファイルやディレクトを一気に表示してくれるんですね。


最終的にこのような感じでOKとなりました。3万件以上でも問題なしです。


echo ディレクトリ | xargs rm -rf