大量のファイルを削除する簡単な方法

大量のファイルを削除する簡単な方法

多数のキャッシュファイルが迅速に生成されるディレクトリがあります。このファイルは小さすぎるため、すべてのinodeを非常に迅速に消費します。

現在、私は12時間より古いすべてのファイルを見つけて削除するために次のコマンドを実行しています。

$ find ./cache -mtime +0.5 -exec rm {} \;

ただし、このコマンドはファイル生成よりも削除が遅くなります。大量のファイルをすばやく削除する他の方法を教えてくれる人はいますか?

ベストアンサー1

find … -exec rm {} \;rm各ファイルに対してコマンドを実行します。新しいプロセスを開始するのは非常に高速ですが、単にファイルを削除するよりもはるかに遅いです。

find … -exec rm {} +一括呼び出しされるので、はるかに高速です。バッチごとに一度実行するのにかかる費用をrm支払い、バッチ削除を複数回実行します。rm

より速いのはrmまったく電話しないことです。 Linuxのコマンドには、find一致するファイルを削除する操作があります。-delete

find ./cache -type f -mtime +0.5 -delete

ただし、追いつかない速度でファイルを生成すると、find … -exec rm {} \;設定に問題がある可能性があります。数百万のファイルが含まれている場合は、cacheより高速なアクセスのためにサブディレクトリに分割する必要があります。

おすすめ記事