Запретить Nautilus / Nemo создавать папку .Trash-1000 на подключенных устройствах

15

И Nautilus, и Nemo создают скрытые папки, вызываемые .Trash-1000на любом подключенном устройстве, очевидно, для управления своей папкой «Корзина». Это сильно сбивает с толку в сетевых дисках, которые смонтированы другими пользователями, которые могут использовать другие операционные системы или программы, которые не распознают эту папку как корзину для мусора.

Более того, эта папка увеличивается с количеством удаленных файлов и не может быть удалена из Ubuntu:

$ sudo rm -rf ./.Trash-1000
rm: cannot remove './.Trash-1000/files': Directory not empty

Чтобы освободить место на таких подключенных томах, .Trash-1000необходимо удалить папку из другой системы.

Есть ли способ предотвратить создание этой папки на сетевых дисках Nemo или Nautilus? Я, естественно, просто не могу их использовать, но они удобны во многих ситуациях.

Луис де Соуза
источник
1
@ LuísdeSousa Теперь я предоставил ответ о текущем положении дел, то есть в настоящее время такая функция невозможна. Тем не менее, я бы попросил вас оставаться терпеливым в течение следующей недели или около того, и я мог бы вернуться с лучшим решением. ОК ?
Сергей Колодяжный
В качестве обходного пути вы можете .Trash-1000самостоятельно создать пустую папку и использовать chmod 000 .Trash-1000и / или sudo chattr +i .Trash-1000запретить ее заполнение Nautilus. ( На самом деле я не пробовал это, но я бы , если бы у меня была эта проблема.)
Очков
Это похоже на традиционный обходной путь на флэш-накопителях - создайте пустой файл (не папку) с именем .Trash-1000, это достаточно запутает gnome, чтобы остановить его.
Дон Яркий
@pts Это заставит других пользователей запутаться в этом. Более того, в дисках Samba права Linux не имеют смысла.
Луис де Соуза
@ LuísdeSousa: Для общих ресурсов Samba выполните команду chmod или chattr на сервере Samba ( samba.org ). Я понимаю, что у каждого решения и обходного пути есть свои компромиссы. Тем не менее, лучше знать об обходном пути и его компромиссе, чем не знать. Следовательно я отправил это как комментарий.
Очков

Ответы:

15

После просмотра исходного кода Наутилуса и ответ Майкла Штумпфль в то становится ясно , что создание папки мусора, что - то жестко закодированы в Nautilus , сам исходный код и является частью того , как libgioработы - библиотека за манипуляции файлами в приложениях Gtk / GNOME. Поэтому отключение такого поведения в настоящее время невозможно без перекомпиляции самого файлового менеджера или изменения исходного кода библиотеки (что я бы не рекомендовал делать, поскольку другие приложения полагаются на него, поэтому изменения могут повлиять на поведение других приложений).

Вероятно, лучшее решение - предложить запрос функции разработчикам Nautilus и подождать, пока он не будет исправлен. Можно также прибегнуть к постоянному удалению файлов с помощью Shift+ Deleteярлыка или с помощью утилит командной строки, таких как mv(перейти в папку пользователя в /файловой системе) rm. В противном случае - переключитесь на использование другого файлового менеджера.

Сергей Колодяжный
источник
1
Если это жестко запрограммировано, libgioбудет ли иметь значение использование альтернативного файлового менеджера?
Луис де Соуза
4
@ LuísdeSousa Не каждый файловый менеджер полагается на libgio. Дельфин, например, нет. Файловый менеджер командной строки, такой как midnight-commanderне. В общем, те приложения, которые не используют инструментарий Gtk, не вступают в контакт libgio. Конечно, могут быть исключения.
Сергей Колодяжный
0

Это не мешает созданию папки .Trash, но это простой способ решения вашей заявленной проблемы.

Это может показаться излишне простым, но просто используйте сглаживание. Как в:rm -rf .Trash-1000/*

шаблон (*) расширяется оболочкой, и rm спускается и удаляет все файлы и каталоги, чье имя соответствует этому шаблону. Он не будет пытаться удалить папку .Trash-1000, но удалит «./.Trash-1000/files». Конечно нормальные разрешения применяются.

`

Старейшина Гик
источник