Чому спорожнення сміттєвого сміття в наутілус займає так довго?


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 Aquarius
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.