find
非常に大きなディレクトリでコマンドを実行すると、find
メモリの使用量が予想よりもはるかに急増することがわかりました。「find」という単語を過度に使用したため、解決策を探すのが非常に困難であることがわかりました。コマンドは次のとおりです。
find /var/dir -size +500k -iname "pattern_*" -mtime +90 -type f -exec rm {} \; -print
find は、ディレクトリを処理するときに、そのディレクトリのファイル リスト全体をメモリ内に保持しますか? 1 つのエントリだけを調べて次に進むことができるようです。私が処理しているディレクトリには約 200 万のファイルがあり、メモリ制限の問題が発生し始めています。
メモリ使用量を削減する方法はありますかfind
? より適切に動作する代替手段はありますか? このディレクトリ内のいくつかの条件を満たすファイルを削除して、それを印刷するだけです。(最後の解決策は、結果をストリーミングして必要な処理を実行する独自のプログラムを作成することですls
...)