Nie pozwól, aby Nautilus / Nemo utworzył folder .Trash-1000 w zamontowanych urządzeniach


15

Zarówno Nautilus, jak i Nemo tworzą ukryte foldery wywoływane .Trash-1000na dowolnym zamontowanym urządzeniu, najwyraźniej w celu zarządzania folderem Kosz. Jest to bardzo mylące dla dysków sieciowych montowanych przez innych użytkowników, którzy mogą używać innych systemów operacyjnych lub programów, które nie rozpoznają tego folderu jako kosza na śmieci.

Ponadto ten folder rozszerza się wraz z liczbą usuniętych plików i nie można go usunąć z Ubuntu:

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

Aby zwolnić miejsce w takich zamontowanych woluminach, .Trash-1000folder należy usunąć z innego systemu.

Czy jest jakiś sposób, aby uniemożliwić Nemo lub Nautilusowi utworzenie tego folderu na dyskach sieciowych? Oczywiście nie mogę ich po prostu użyć, ale są one przydatne w wielu sytuacjach.


1
@ LuísdeSousa Teraz podałem odpowiedź na temat obecnego stanu rzeczy, to znaczy, że obecnie nie można mieć takiej funkcji. Chciałbym jednak poprosić o cierpliwość przez około tydzień, a może wrócę z lepszym rozwiązaniem. DOBRZE ?
Sergiy Kolodyazhnyy

Aby obejść ten problem, możesz .Trash-1000samodzielnie utworzyć pusty folder i używać przycisków chmod 000 .Trash-1000i / lub, sudo chattr +i .Trash-1000aby zapobiec zapełnianiu go przez Nautilus. (Właściwie nie próbowałem tego, ale zrobiłbym to, gdybym miał ten problem.)
pts

pts jest to podobne do tradycyjnego obejścia na pendrive'ach - stwórz pusty plik (nie folder) o nazwie .Trash-1000 to myli gnoma na tyle, aby go zatrzymać.
don bright

@pts Sprawi to, że inni użytkownicy będą zdezorientowani. Co więcej, na dyskach Samby uprawnienia Linuksa nie mają znaczenia.
Luís de Sousa

@ LuísdeSousa: W przypadku udziałów Samby wykonaj chmod lub chattr na serwerze Samba ( samba.org ). Rozumiem, że każde rozwiązanie i obejście ma swoje wady. Niemniej jednak lepiej wiedzieć o obejściu i jego kompromisie niż nie wiedzieć. Dlatego opublikowałem to jako komentarz.
pts

Odpowiedzi:


15

Po zapoznaniu się z kodem źródłowym Nautilusa i odpowiedzią Michaela Stumpfl staje się jasne, że tworzenie folderów na śmieci jest czymś mocno zakodowanym w samym kodzie źródłowym Nautilusa i jest częścią tego, jak libgiodziała - biblioteka manipulacji plikami w aplikacjach Gtk / GNOME. Dlatego wyłączenie takiego zachowania nie jest obecnie możliwe bez ponownej kompilacji samego menedżera plików lub zmiany kodu źródłowego biblioteki (czego nie polecałbym robić, ponieważ inne aplikacje na nim polegają, więc zmiany mogą wpływać na zachowanie innych aplikacji).

Prawdopodobnie najlepszym rozwiązaniem jest zaproponowanie programistom Nautilus żądania funkcji i poczekanie, aż zostanie naprawiona. Można również skorzystać z trwałego usunięcia plików za pomocą skrótu Shift+ Deletelub narzędzi wiersza polecenia, takich jak mv(przenieś do folderu kosza użytkownika w /systemie plików) lub rm. W przeciwnym razie - na razie przełącz się na używanie innego menedżera plików.


1
Jeśli jest to zapisane na stałe, libgioczy skorzystałoby z alternatywnego menedżera plików?
Luís de Sousa,

4
@ LuísdeSousa Nie każdy menedżer plików polega na libgio. Delfin na przykład nie. Menedżer plików wiersza poleceń, taki jak midnight-commandernie. Ogólnie rzecz biorąc, aplikacje, które nie polegają na zestawie narzędzi Gtk, nie mają z nimi kontaktu libgio. Oczywiście mogą istnieć wyjątki.
Sergiy Kolodyazhnyy

0

Nie uniemożliwia to utworzenia folderu .Trash, ale jest to prosty sposób radzenia sobie z określonym problemem.

Może się to wydawać zbyt proste, ale wystarczy użyć globowania. Jak w:rm -rf .Trash-1000/*

wzorzec (*) jest rozszerzany przez powłokę, a rm zejdzie do i usunie wszystkie pliki i katalogi, których nazwa pasuje do tego wzorca. Nie będzie próbował usunąć folderu .Trash-1000, ale usunie „./.Trash-1000/files”. Oczywiście obowiązują normalne uprawnienia.

`

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.