Почему опорожнение мусорного ведра в наутилусе занимает так много времени?

15

Для целей этого вопроса «большой каталог» означает, например, git-репозиторий ядра Linux или источник Chromium.

Если я получу rm -rfтакой большой каталог из оболочки, он будет удален максимум за пару секунд.

Если я сначала перенесу его в корзину, а затем опустошу, первая операция занимает менее секунды, а затем фактическое удаление занимает несколько минут (мы говорим о двузначных числах).

Почему уборка мусора происходит так медленно? Что он делает, когда говорит «готовится». Сколько подготовки на самом деле нужно для запуска rm -rf ~/.local/share/Trash/?

Я смотрю на это более 20 минут.

Алистер Бакстон
источник
Если у вас есть немного свободного времени, вы можете посмотреть libnautilus-private/nautilus-file-operations.cв источнике ( apt-get source nautilus). У меня нет усердия и терпения для чтения C. Хотя интересный вопрос. +1
phipsalabim
3
rm -rf ~/.local/share/Trashможет быть быстрее См. Askubuntu.com/a/468722/2273
Адам Монсен

Ответы:

5

Когда происходит первая операция, она просто перемещает файлы в корзину.

Когда вы «удаляете» эти файлы, он загружает весь файл дерева в память, а затем удаляет каждый файл по одному. Это позволяет рассчитать время, чтобы узнать, сколько времени требуется для удаления файла, сколько файлов нужно удалить, насколько они велики, хотя большинство параметров здесь не используются, и позволяет нажать на маленький красный крестик, чтобы остановить процесс.

Вот почему я всегда удаляю из оболочки

Меер Борг
источник
когда я захожу в мусорную корзину nautilus, она на долгое время замораживает nautilus, и я ничего не могу нажать; Интересно, может ли быть какой-либо способ отключить его или всплывающее окно, если я действительно хочу увидеть его на nautilus, потому что я использую его для многих других вещей, а затем, внезапно, мне приходится ждать 3 минуты, чтобы иметь возможность снова использовать nautilus, если я не хочу перезапускать его :(
Водолей Power