GNU/Linux >> Linux の 問題 >  >> Linux

Linux –何千ものファイルを含む大きなディレクトリを効率的に削除しますか?

数十万の小さなファイルでフォルダが扱いにくくなるという問題があります。

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))}'

出典:

  1. https://stackoverflow.com/questions/1795370/unix-fast-remove-directory-for-cleaning-up-daily-builds
  2. http://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux

Linux
  1. Linuxはロボコピーに相当しますか?

  2. rsync ディレクトリ内の N 個の最新ファイル

  3. rsync は送信先のファイルを削除しません

  1. Linuxでのrsyncコマンドの実用例

  2. Linux ファイルとディレクトリの削除

  3. Linuxでディレクトリを削除/削除する5つの実用的な例

  1. Linux でのファイル/ディレクトリの最大数は?

  2. Linux ディレクトリ内のファイルを再帰的にカウントする

  3. Linux マージ フォルダ:rsync?