Seperti yang Anda perhatikan dengan benar, GUI melakukan lebih dari sekadar "menghapus" file.
$ rm -rf
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:
~/.local/share/Trash/files/<filename>[.<version>]
Di mana filename
nama file asli, dan version
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:
~/.local/share/Trash/info/<filename>[.<version>].trashinfo
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 sederhana mv
.