数十万の小さなファイルでフォルダが扱いにくくなるという問題があります。
rm -rf
を実行するファイルが非常に多い エラーを返します。代わりに、次のようにする必要があります。
find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} ;
これは機能しますが、非常に遅く、メモリが不足すると常に失敗します。
これを行うためのより良い方法はありますか?理想的には、ディレクトリ内の内容を気にせずにディレクトリ全体を削除したいと思います。
承認された回答:
rsyncの使用は驚くほど速くて簡単です。
mkdir empty_dir
rsync -a --delete empty_dir/ yourdirectory/
@sarathの回答は、もう1つの速い選択であるPerlに言及しています。そのベンチマークはrsync -a --delete
よりも高速です 。
cd yourdirectory
perl -e 'for(<*>){((stat)[9]<(unlink))}'
出典:
- https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
- http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux