Như bạn đã nhận thấy, GUI thực hiện nhiều hơn là chỉ "xóa" các tệp.
$ rm -rf
chỉ cần đệ quy vào các thư mục xóa các tệp và thư mục mà nó tìm thấy trong đó.
GUI trước tiên quét toàn bộ cây để tìm ra những gì có ở đó (vì vậy nó biết nó phải làm bao nhiêu để vẽ thanh đẹp), sau đó nó lặp lại qua cây một lần nữa để di chuyển các tệp từ vị trí hiện tại đến vị trí của thùng rác có thể tập tin cho GUI cụ thể của bạn. Việc di chuyển đó mất nhiều thời gian hơn, vì trước tiên nó phải tạo một tên tệp duy nhất mới, liên kết tệp trong thư mục thùng rác, sau đó hủy liên kết tệp khỏi thư mục hiện tại và cập nhật chỉ mục nơi các tệp đến từ đó để chúng có thể "hoàn tác" - nhiều hoạt động thay vì chỉ một.
Chẳng hạn, trên Gnome 3, các tệp được chuyển đến vị trí:
~/.local/share/Trash/files/<filename>[.<version>]
filename
Tên tệp gốc ở đâu và version
là số phiên bản tăng dần để đảm bảo tệp là duy nhất (phiên bản tệp đầu tiên không có số phiên bản). Liên kết với đó là một .trashinfo
tập tin được lưu trữ trong thư mục:
~/.local/share/Trash/info/<filename>[.<version>].trashinfo
Tệp này chứa đường dẫn gốc của tệp trước khi xóa, cũng như ngày và giờ tệp này đã bị xóa.
Tất cả các thao tác bổ sung này, phải được thực hiện trên từng tệp riêng lẻ trong cây bạn đang xóa, đảm bảo rằng bạn có thể khôi phục bất kỳ tệp nào từ thùng rác và bạn có thể xóa các tệp có cùng tên từ cùng một vị trí và vẫn khôi phục các phiên bản trước đó.
Không ai trong số đó được thực hiện với một đơn giản rm
hoặc mv
lệnh.