rsyncでファイルを移動してディレクトリを削除しますか?
最近、大量のファイル(100万を超える)を削除する必要がありました。 rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source それを行うための最も最適化された方法の1つであり、それよりも高速であることを保証できrm -rfます。 私はこの問題の専門家ではありませんが、rsyncのパフォーマンスの理由は、ファイルをリストする方法(FIFOではなくLIFOの場合)に何らかの理由があります。問題は、大量のファイルを効率的な方法で移動する必要があることです。少し検索した後、私はこれを見つけました: rsync -av --ignore-existing --remove-source-files ~/source ~/destination これにより、に移動したすべてのファイルが削除されますが~/source、ディレクトリはそのまま残ります。「ラウンドロビン」のようなディレクトリ構造を持っているため、の数はfiles/directories1に非常に近いため、ディレクトリを完全に削除するには、最初のコマンドを再度実行する必要があります。 rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source ストレートmvはほぼ瞬時に終了し~/destinationますが、私のディレクトリには保持する必要があるファイルがあるためmv、オプションではありません。--prune-empty-dirsおよび--forcersyncオプションを見つけましたが、どちらも期待どおりに動作しないようです: --force force deletion of directories even if not empty --prune-empty-dirs prune empty …