Sesuatu yang saya ingin tahu ketika saya menghapus selusin gambar dari komputer saya: Dengan rm -rf
perintah cepat pada isi direktori, semua gambar hilang dalam sekejap. Saat saya seret selusin gambar yang sama ke tempat sampah / daur ulang, kadang-kadang butuh 10 detik atau lebih.
Sekarang saya yakin beberapa di antaranya berasal dari overhead GUI dan semacamnya, dan beberapa di antaranya mungkin fakta bahwa file tersebut masih "ada" dalam beberapa bentuk jika dimasukkan ke recycle bin, tetapi apakah ada hal lain yang menyumbang perbedaan waktu yang sangat besar ? Apakah "rm" dan "delete" hanyalah perintah yang berbeda secara mendasar, jadi saya mencoba membandingkan apel dan jeruk?
linux
command-line
Jordan Plahn
sumber
sumber
Jawaban:
Seperti yang Anda perhatikan dengan benar, GUI melakukan lebih dari sekadar "menghapus" file.
hanya berulang ke folder menghapus file dan folder yang ditemukannya di sana.
GUI pertama-tama memindai seluruh pohon untuk mencari tahu apa yang ada di sana (jadi ia tahu berapa banyak yang harus dilakukan untuk menggambar bilah cantik), kemudian berulang melalui pohon lagi memindahkan file dari lokasi saat ini ke lokasi file tempat sampah untuk GUI spesifik Anda. Perpindahan itu membutuhkan waktu lebih lama, karena harus terlebih dahulu menghasilkan nama file unik baru, menautkan file di folder tempat sampah, kemudian memutuskan tautannya dari folder saat ini, dan memperbarui indeks dari mana file berasal sehingga mereka dapat "dibatalkan" - banyak operasi, bukan hanya satu.
Misalnya, pada Gnome 3 file dipindahkan ke lokasi:
Di mana
filename
nama file asli, danversion
merupakan nomor versi yang bertambah untuk memastikan file tersebut unik (instance file pertama tidak memiliki nomor versi). Terkait dengan itu adalah.trashinfo
file yang disimpan di folder:File ini berisi path asli file sebelum dihapus, serta tanggal dan waktu file ini dihapus.
Semua operasi tambahan ini, yang harus dilakukan pada masing-masing dan setiap file di pohon yang Anda hapus, memastikan bahwa Anda dapat mengembalikan file apa pun dari tempat sampah, dan bahwa Anda dapat menghapus file dengan nama yang sama dari lokasi yang sama dan masih mengembalikan versi sebelumnya.
Tidak ada yang dilakukan dengan perintah
rm
atau sederhanamv
.sumber
trash-cli
sepertinya tidak melakukannya secara rekursif. Saat menghapus folder, apakah Gnome 3 benar-benar meletakkan.trashinfo
file secara rekursif untuk setiap subfolder dan semua file yang mengandung?