Як ви справедливо помітили, GUI робить більше, ніж просто "видалення" файлів.
$ rm -rf
просто повторюється в папки, видаляючи файли та папки, які вони знаходять там.
GUI спочатку сканує все дерево, щоб розібратися, що там є (тому воно знає, скільки потрібно зробити, щоб намалювати гарну смужку), а потім повторно повторюється через дерево, переміщуючи файли з поточного місця на місце розташування Файли для сміття для вашого конкретного графічного інтерфейсу. Цей переїзд займає більше часу, оскільки він повинен спершу створити нове унікальне ім’я файлу, зв’язати файл у папці сміття, потім від’єднати його від поточної папки та оновити індекс, звідки прийшли файли, щоб їх можна було "скасувати" - багато операцій замість лише однієї.
Наприклад, у Gnome 3 файли переміщуються до місця розташування:
~/.local/share/Trash/files/<filename>[.<version>]
Де filename
є оригінальне ім'я файлу, і version
збільшується номер версії для забезпечення унікальності файлу (перший екземпляр файлу не має номера версії) З цим пов'язаний .trashinfo
файл, який зберігається в папці:
~/.local/share/Trash/info/<filename>[.<version>].trashinfo
Цей файл містить оригінальний шлях до файлу перед видаленням, а також дату та час видалення цього файлу.
Усі ці додаткові операції, які потрібно виконати на кожному окремому файлі в дереві, яке ви видаляєте, переконайтеся, що ви можете відновити будь-який файл із кошика для сміття, а також ви можете видалити файли, названі тим самим, те саме місце розташування і досі відновити попередні версії.
Нічого з цього не робиться за допомогою простого rm
чи mv
команди.