Impedir que o Nautilus / Nemo crie a pasta .Trash-1000 em dispositivos montados

15

Tanto o Nautilus quanto o Nemo criam pastas ocultas chamadas .Trash-1000em qualquer dispositivo montado, aparentemente para gerenciar a pasta Lixeira. Isso é muito confuso em unidades de rede montadas por outros usuários, que podem estar usando outros sistemas operacionais ou programas que não reconhecem essa pasta como uma lixeira.

Além disso, esta pasta se expande com o número de arquivos excluídos e não pode ser apagada do Ubuntu:

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

Para liberar espaço nesses volumes montados, a .Trash-1000pasta deve ser excluída de um sistema diferente.

Existe alguma maneira de impedir que o Nemo ou o Nautilus crie essa pasta nas unidades de rede? Naturalmente, eu simplesmente não posso usá-los, mas eles são úteis em muitas situações.

Luís de Sousa
fonte
11
@ LuísdeSousa Agora, eu forneci uma resposta sobre o estado atual das coisas, que atualmente não é possível ter esse recurso. No entanto, eu pediria que você permanecesse paciente pela próxima semana, mais ou menos, e eu poderia retornar com uma solução melhor. OK ?
Sergiy Kolodyazhnyy
Como solução alternativa, você mesmo pode criar uma .Trash-1000pasta vazia e usar chmod 000 .Trash-1000e / ou sudo chattr +i .Trash-1000para impedir que o Nautilus a preencha. (Eu realmente não tenho tentei isso, mas eu faria se eu tive esse problema.)
pts
pts, isso é semelhante à solução alternativa tradicional em pen drives - crie um arquivo vazio (não pasta) chamado .Trash-1000, isso confunde o gnome o suficiente para pará-lo.
don bright
@pts Isso manterá outros usuários confusos. Além disso, nas unidades Samba, as permissões do Linux não têm significado.
Luís de Sousa
@ LuísdeSousa: Para compartilhamentos do Samba, faça o chmod ou chattr no servidor Samba ( samba.org ). Entendo que cada solução e solução alternativa tem suas vantagens e desvantagens. No entanto, é melhor saber sobre uma solução alternativa e suas vantagens e desvantagens do que não saber. Portanto, eu postei como um comentário.
pts

Respostas:

15

Depois de examinar o código-fonte do Nautilus e a resposta de Michael Stumpfl , fica claro que a criação da pasta de lixo é algo codificado no próprio código-fonte do Nautilus e faz parte de como libgiofunciona - a biblioteca por trás da manipulação de arquivos nos aplicativos Gtk / GNOME. Portanto, atualmente não é possível desabilitar esse comportamento sem recompilar o próprio gerenciador de arquivos ou alterar o código-fonte da biblioteca (o que eu não recomendaria, pois outros aplicativos dependem dele, portanto, as alterações podem afetar o comportamento de outros aplicativos).

Provavelmente, a melhor solução é propor uma solicitação de recurso aos desenvolvedores do Nautilus e aguardar até que ela seja corrigida. Pode-se também recorrer à exclusão permanente de arquivos via Shift+ Deleteatalho ou usando utilitários de linha de comando, como mv(mover para a pasta de lixo do usuário no /sistema de arquivos) ou rm. Caso contrário - mude para usar um gerenciador de arquivos diferente por enquanto.

Sergiy Kolodyazhnyy
fonte
11
Se esse código estiver embutido libgio, faria diferença usar um gerenciador de arquivos alternativo?
Luís de Sousa
4
@ LuísdeSousa Nem todo gerenciador de arquivos depende libgio. Golfinho, por exemplo, não. Gerenciador de arquivos de linha de comando, como midnight-commandernão. Em geral, os aplicativos que não dependem do kit de ferramentas Gtk não entram em contato libgio. Claro, poderia haver exceções.
Sergiy Kolodyazhnyy
0

Isso não impede a criação da pasta .Trash, mas é uma maneira simples de lidar com o problema declarado.

Isso pode parecer simples demais, mas use apenas globbing. Como em:rm -rf .Trash-1000/*

o padrão (*) é expandido pelo shell e o rm desce e remove todos os arquivos e diretórios cujo nome corresponde a esse padrão. Ele não tentará excluir a pasta .Trash-1000, mas removerá './.Trash-1000/files'. Obviamente, as permissões normais se aplicam.

`

Elder Geek
fonte