82000個のファイルとディレクトリが含まれるログファイルディレクトリ(約半分)があります。
3日以上経過したすべてのファイルとディレクトリを削除する必要があります。
37000個のファイルがあるディレクトリで、次の方法でこれを実行できました。
find * -mtime +3 -exec rm {} \;
しかし、82000のファイル/ディレクトリでは、エラーが発生します:
/ usr/bin/find:引数リストが長すぎます
日以上経過したすべてのファイル/ディレクトリを削除できるように、このエラーを回避するにはどうすればよいですか?
すべてのファイルを削除するにはandcurrentディレクトリ内のディレクトリ:
find . -mtime +3 | xargs rm -Rf
または、OPの元のコマンドにもっと沿って:
find . -mtime +3 -exec rm -Rf -- {} \;
以下も使用できます:
find . -mindepth 1 -mtime +3 -delete
ターゲットディレクトリを削除しない
元の質問の別の解決策、特に。フォルダー内の古いファイルの一部のみを削除する場合に便利です。次のようになります。
find . -name "*.sess" -mtime +100
など..引用はシェルワイルドカードをブロックするため、何百万ものファイルを「見つける」ことができます。