Что-то, о чем я задумывался, когда удалял с моего компьютера дюжину или около того изображений: с помощью быстрой rm -rf
команды на содержимом каталога все изображения сразу исчезли. Когда я перетаскиваю те же самые дюжины или около того изображений в корзину для мусора / бан, это иногда занимает 10 секунд или больше.
Теперь я уверен, что некоторые из них происходят из-за накладных расходов графического интерфейса и тому подобного, и некоторые из них могут заключаться в том, что файл все еще «существует» в некоторой форме, если он помещен в корзину, но есть ли что-нибудь еще, что объясняет такое огромное временное неравенство? Являются ли "rm" и "delete" просто такими принципиально разными командами, поэтому я пытаюсь сравнить яблоки и апельсины?
источник
Ответы:
Как вы правильно заметили, графический интерфейс делает больше, чем просто «удаляет» файлы.
просто повторяется в папки, удаляя найденные там файлы и папки.
Сначала графический интерфейс сканирует все дерево, чтобы выяснить, что там есть (поэтому он знает, сколько нужно сделать, чтобы нарисовать симпатичную полосу), затем он повторяется через дерево, снова перемещая файлы из текущего местоположения в местоположение файлы корзины для вашего конкретного графического интерфейса. Это перемещение занимает больше времени, так как необходимо сначала сгенерировать новое уникальное имя файла, связать файл в папке корзины, затем отсоединить его от текущей папки и обновить индекс того, откуда пришли файлы, чтобы их можно было «отменить» - много операций вместо одной.
Например, в Gnome 3 файлы перемещаются в папку:
Где
filename
- исходное имя файла иversion
инкрементный номер версии, чтобы обеспечить уникальность файла (первый экземпляр файла не имеет номера версии). С этим связан.trashinfo
файл, хранящийся в папке:Этот файл содержит исходный путь к файлу до удаления, а также дату и время удаления этого файла.
Все эти дополнительные операции, которые необходимо выполнить для каждого отдельного файла в дереве, которое вы удаляете, гарантируют, что вы сможете восстановить любой файл из корзины, и что вы можете удалить файлы с такими же именами из то же место и до сих пор восстановить более ранние версии.
Ничего из этого не делается с помощью простой
rm
илиmv
команды.источник
trash-cli
, кажется, не делать это рекурсивно. При удалении папки действительно ли Gnome 3 помещает.trashinfo
файл рекурсивно для каждой подпапки и всех содержащих ее файлов?