私はマウントされたNASドライブから何百万ものファイルを削除する方法を見つけようとしました。私がアクセスするオペレーティングシステムはRHEL 7.6です。
このディレクトリには、毎日数万または数十万の追加ファイルが活発に記録されています。
たとえば、アンインストール技術を実行しようとすると、次のようになります。
rsync -av --delete empty_dir/ millions_of_files_dir/
まず、CPU/MEM を多用し、「デルタファイルリストを送信中です」というメッセージが表示されます。これは永遠に続き、CPU / MEM使用量は徐々に最小限に抑えられます。
私の理論は、ファイルのリストが終わらないので、これが起こるということです。多数のファイルが追加されます。
SO:削除する前にファイルの完全なリストを必要としませんが、ファイルが見つかった場合に「ストリームを削除」する削除技術はありますか?
答え1
find
オプションと一緒にコマンドを使用すると、-delete
リスト全体を作成せずにファイルを検出すると削除されます。
find . -type f -delete # deletes all files in the current dir and all subdirs
ほとんどのLinuxファイルシステムは、単一のディレクトリにあまりにも多くのファイルがあると正しく機能しないことに注意することが重要です。 「完全な」リストが作成されていなくてもディレクトリの内容を一覧表示する必要があるため、ディレクトリに何百万ものファイルが含まれているとパフォーマンスが悪くなります。