rm -rf
が遅い場合は、ディスクへの書き込み頻度が高すぎる「同期」オプションまたは類似のオプションを使用している可能性があります。通常のオプションを使用した Linux ext3 では、rm -rf
非常に高速です。
Linux で動作し、おそらくさまざまな Unixen でも動作する高速削除のオプションの 1 つは、次のようなループ デバイスを使用することです。
hole temp.img $[5*1024*1024*1024] # create a 5Gb "hole" file
mkfs.ext3 temp.img
mkdir -p mnt-temp
sudo mount temp.img mnt-temp -o loop
「穴」プログラムは、ディスク上に割り当てられたブロックではなく「穴」を使用して大きな空のファイルを作成するために私が自分で書いたものです。これははるかに高速で、本当に必要になるまでディスク領域を使用しません。 http://sam.nipl.net/coding/c-examples/hole.c
GNU coreutils に同様のプログラム「truncate」が含まれていることに気付きました。それがある場合は、これを使用してイメージを作成できます。
truncate --size=$[5*1024*1024*1024] temp.img
これで、mnt-temp の下にマウントされたイメージをビルドの一時ストレージとして使用できるようになりました。使い終わったら、次のようにして削除します。
sudo umount mnt-temp
rm test.img
rmdir mnt-temp
たくさんの小さなファイルを削除するよりも、1 つの大きなファイルを削除する方がはるかに迅速であることがわかると思います。
私の「hole.c」プログラムをコンパイルしたくない場合は、dd を使用できますが、これは非常に遅くなります。
dd if=/dev/zero of=temp.img bs=1024 count=$[5*1024*1024] # create a 5Gb allocated file