Saya memiliki folder dengan subfolder 266778. Bagaimana saya bisa menghapusnya?
saya telah mencoba
cd ~/.local/share/Trash/
sudo rm -rf *
tetapi butuh banyak waktu. Setelah 1 menit 25 detik waktu nyata dan waktu pengguna 0,072 detik hanya dihapus 2500 folder. Dengan cara ini, akan diperlukan lebih dari dua jam untuk menghapus folder ini.
Apakah ada cara yang lebih cepat untuk menghapus folder ini? Mengapa ada perbedaan besar antara waktu pengguna dan waktu nyata?
real 1m25.474s
user 0m0.072s
sys 0m28.142s
Saya menggunakan Linux 2.6.32 (Ubuntu 10.04.4 LTS).
filesystems
rm
Martin Thoma
sumber
sumber
Jawaban:
Jika versi "find" Anda mengimplementasikan sub-perintah -delete, maka Anda dapat mencoba
Pada kasus ini:
Beberapa perintah, seperti rm, melakukan sebagian besar pekerjaan mereka di kernel. Dalam rutinitas sistem file, tepatnya. Waktu yang dihabiskan untuk melakukan panggilan sistem dihitung dengan cara itu, jadi sementara perintah "rm" Anda berjalan untuk waktu yang lama, itu tidak melakukan banyak pekerjaan di tanah pengguna - panggilan sistem melakukan sebagian besar pekerjaan.
sumber
find ~/.local/share/Trash/*/ -delete
(tentu saja, ini juga akan menghapus file (dan dir) di salah satu dari Trash / * / subdirs juga)time
find directory -delete
lebih cepat dari iturm -rf directory
? Lagi pula, mereka melakukan pekerjaan yang sama, dan tidak ada dua cara untuk melakukannya.Itu tergantung pada definisi Anda tentang puasa . Jawaban yang sudah ada di sini memberikan solusi yang baik untuk benar-benar menghapus direktori dari sistem file, tetapi jika Anda benar-benar perlu untuk membebaskan nama direktori secepat mungkin, mengganti nama pada sistem file yang sama adalah instan:
Secara teknis ini curang karena saya belum mempercepat penghapusan yang sebenarnya, tetapi secara praktis ini sangat berguna: Saya menggunakan trik ini sepanjang waktu sehingga saya tidak harus menunggu operasi penghapusan yang lambat.
sumber
mktemp
adalah apa yang saya coba ingat ...rm -rf directory
ataurm -rf *
tentu saja adalah metode tercepat kecualirm
implementasi lokal Anda rusak.Menggunakan
find
tidak memberi keuntungan.Apakah ini cepat atau lambat terutama tergantung pada sistem file dan implementasi OS. Jadi pertanyaannya sepertinya tidak tepat.
UFS dan ZFS pada Solaris dikenal sangat cepat dengan tugas seperti ini karena kedua implementasi sistem file termasuk kode penghapusan latar belakang yang tertunda yang menyebabkan
unlink()
danrmdir()
panggilan untuk kembali dengan cepat bahkan ketika objek terkait akan membutuhkan lebih banyak waktu secara total.Dengan latar belakang yang tertunda dihapus di kernel, pembaruan direktori dapat dilakukan dengan cepat juga dan ini membantu mempercepat seluruh operasi.
sumber
Ini hanya sebagian jawaban, menyoroti tiga nilai yang dikembalikan oleh perintah; dikutip dari halaman
time(1)
manual :sumber