Verhindert, dass Nautilus / Nemo den Ordner .Trash-1000 auf gemounteten Geräten erstellt

15

Sowohl Nautilus als auch Nemo erstellen versteckte Ordner, die .Trash-1000auf einem beliebigen gemounteten Gerät aufgerufen werden, anscheinend um den Papierkorb zu verwalten. Dies ist möglicherweise verwirrend bei Netzwerklaufwerken, die von anderen Benutzern gemountet werden und andere Betriebssysteme oder Programme verwenden, die diesen Ordner nicht als Papierkorb erkennen.

Darüber hinaus erweitert sich dieser Ordner um die Anzahl der gelöschten Dateien und kann von Ubuntu nicht gelöscht werden:

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

Um Speicherplatz in solchen bereitgestellten Volumes .Trash-1000freizugeben, muss der Ordner von einem anderen System gelöscht werden.

Gibt es eine Möglichkeit, zu verhindern, dass Nemo oder Nautilus diesen Ordner auf Netzwerklaufwerken erstellen? Ich kann sie natürlich einfach nicht benutzen, aber sie sind in vielen Situationen praktisch.

Luís de Sousa
quelle
1
@ LuísdeSousa Jetzt habe ich eine Antwort auf den aktuellen Stand der Dinge gegeben, das heißt, derzeit ist es nicht möglich, eine solche Funktion zu haben. Ich möchte Sie jedoch bitten, für etwa die nächste Woche geduldig zu bleiben, und ich werde möglicherweise mit einer besseren Lösung zurückkehren. OK ?
Sergiy Kolodyazhnyy
Um dieses Problem zu umgehen, können Sie selbst einen leeren .Trash-1000Ordner erstellen und mithilfe von chmod 000 .Trash-1000und / oder sudo chattr +i .Trash-1000verhindern, dass Nautilus ihn auffüllt. (Ich habe es nicht wirklich versucht, aber ich würde es
pts
Dies ähnelt der herkömmlichen Problemumgehung auf USB-Sticks. Erstellen Sie eine leere Datei (nicht einen Ordner) mit dem Namen .Trash-1000.
Don Bright
@pts Dies wird andere Benutzer verwirren. Außerdem haben in Samba-Laufwerken Linux-Berechtigungen keine Bedeutung.
Luís de Sousa
@ LuísdeSousa: Führen Sie für Samba-Freigaben den Befehl chmod oder chattr auf dem Samba-Server ( samba.org ) aus. Ich verstehe, dass jede Lösung und Problemumgehung ihre Nachteile hat. Trotzdem ist es besser, über einen Workaround und seine Nachteile Bescheid zu wissen, als es nicht zu wissen. Daher habe ich es als Kommentar gepostet.
pts

Antworten:

15

Wenn man sich den Quellcode von Nautilus und die Antwort von Michael Stumpfl ansieht , wird klar, dass die Erstellung von Papierkorbordnern im Quellcode von Nautilus selbst fest programmiert ist und Teil der Funktionsweise libgioist - der Bibliothek hinter den Dateimanipulationen in Gtk / GNOME-Anwendungen. Daher ist das Deaktivieren eines solchen Verhaltens derzeit nicht möglich, ohne den Dateimanager selbst neu zu kompilieren oder den Quellcode der Bibliothek zu ändern (was ich nicht empfehlen würde, da andere Anwendungen darauf angewiesen sind und Änderungen das Verhalten anderer Anwendungen beeinflussen können).

Die wahrscheinlich beste Lösung besteht darin, Nautilus-Entwicklern eine Funktionsanforderung vorzuschlagen und zu warten, bis sie behoben ist. Man könnte auch zum dauerhaften Löschen von Dateien über die ShiftTastenkombination + Deleteoder mit Befehlszeilenprogrammen wie mv(in den Papierkorb des Benutzers im /Dateisystem verschieben) oder zurückgreifen rm. Andernfalls - verwenden Sie zunächst einen anderen Dateimanager.

Sergiy Kolodyazhnyy
quelle
1
Wenn dies fest programmiert ist libgio, macht es einen Unterschied, einen alternativen Dateimanager zu verwenden?
Luís de Sousa
4
@ LuísdeSousa Nicht jeder Dateimanager verlässt sich auf libgio. Delphin zum Beispiel nicht. Befehlszeilen-Dateimanager wie midnight-commanderdoes. Im Allgemeinen kommen Anwendungen, die sich nicht auf das Gtk-Toolkit stützen, nicht mit Gtk in Kontakt libgio. Natürlich kann es Ausnahmen geben.
Sergiy Kolodyazhnyy
0

Dies verhindert nicht die Erstellung des Ordners ".Trash", bietet jedoch eine einfache Möglichkeit, das angegebene Problem zu beheben.

Dies mag zu einfach erscheinen, verwendet aber nur das Globbing. Wie in:rm -rf .Trash-1000/*

Das Muster (*) wird von der Shell erweitert und rm wird in alle Dateien und Verzeichnisse absteigen und diese entfernen, deren Name mit diesem Muster übereinstimmt. Es wird nicht versucht, den Ordner ".Trash-1000" zu löschen, sondern "./.Trash-1000/files". Natürlich gelten die normalen Berechtigungen.

`

Elder Geek
quelle