Qual aplicativo devo culpar por criar compulsivamente um diretório repetidamente?

21

Há um aplicativo no meu sistema que continua criando um ~/Desktopdiretório vazio repetidamente. Não suporto letras maiúsculas em minha casa, nem suporto essa coisa de "área de trabalho". Portanto, por mais exigente que eu seja, removo o diretório toda vez que o vejo. Eu realmente gostaria de saber qual aplicativo é responsável por isso (provavelmente algum aplicativo que não usarei com tanta frequência¹).

Alguma boa idéia para rastrear o culpado?

-
1. Obviamente, eu gostaria de me livrar dele, ou talvez consertá-lo se não puder viver sem ele.

Stéphane Gimenez
fonte

Respostas:

11

Esse diretório pode ser criado por qualquer aplicativo que siga o padrão Freedesktop userdirs . Isso inclui potencialmente todos os aplicativos Gnome ou KDE.

Se você quiser saber qual aplicativo cria o arquivo, poderá usar o sistema de arquivos LoggedFS ou o subsistema de auditoria Linux . Consulte É possível descobrir qual programa ou script criou um determinado arquivo? Para maiores informações.

Gilles 'SO- parar de ser mau'
fonte
Então, minha pergunta é uma cópia exata… Obrigado!
Stéphane Gimenez
E suas respostas parecem ser as únicas que realmente respondem à pergunta.
Stéphane Gimenez
@ StéphaneGimenez Tecnicamente, a pergunta é uma duplicata, mas para esse caso em particular, a resposta certa para a maioria das pessoas é que ela foi criada por algum aplicativo compatível com Freedesktop e é inútil combatê-la (tentei e depois criei a ~/.config/user-dirs.dirs). Por exemplo, um comentário no meu user-dirs.dirslembra que, no Ubuntu, descobri que os diretórios são criados por xdg-user-dirs-updatechamados /etc/Xsession.d/*no momento do login.
Gilles 'SO- stop be evil'
8

Parece um diretório de um dos padrões de desktop gratuitos . Qualquer aplicativo compatível com ele pode estar criando.

Esses diretórios "padrão" podem ser especificados em $HOME/.config/user-dirs.dirs. Você pode alterar o nome para não começar com uma letra maiúscula e ficar oculto em algum lugar, mas livrar-se totalmente será difícil.

Há um programa ( xdg-user-dirs-update) cujo objetivo é criar esses diretórios, consulte xdg-users-dirs . Se deve ser capaz de desativá-lo por ter um $HOME/.config/user-dirs.confcontendo

enabled=False
AProgrammer
fonte
As soluções alternativas são bem-vindas, mas eu gostaria de saber qual aplicativo está criando este diretório (eu gostaria de capturá-lo no momento em que o diretório for criado novamente).
Stéphane Gimenez
Obrigado, vou tentar isso. Mas só espero que o aplicativo não esteja criando o diretório por si só.
Stéphane Gimenez
Onde você encontrou essa enabledinformação? Lendo xdg-users-dirs, isso parece não ter nenhuma influência sobre o script.
Stéphane Gimenez
Aqui e depois lendo/etc/xdg/user-dirs.conf
AProgrammer
Ok, obrigado, o programa que lê o arquivo conf é xdg-users-dirs-update.
Stéphane Gimenez
0

Se você é um ambiente gráfico completo em sua caixa (X e algum ambiente de área de trabalho como o Gnome ou KDE), será sem dúvida um processo do seu ambiente de área de trabalho. Provavelmente, ele criará o diretório da área de trabalho toda vez que você fizer login. O processo responsável pela criação do diretório depende completamente de qual ambiente de área de trabalho você está executando.

Friek
fonte
A questão era genérica porque é um processo isolado. Não estou usando nenhum "ambiente gráfico", apenas um servidor X11 com um gerenciador de janelas quase mínimo.
Stéphane Gimenez
0

No Debian e Ubuntu, você pode ver que há uma entrada user-dirs-update-gtk.desktopno /etc/xdg/autostart/.

A remoção dessa entrada impede a criação de diretórios do usuário novamente.

Sendo uma coisa que vem do padrão freedesktop, é provável que isso funcione em outras distros também.

enzotib
fonte
Nada lá (mas o diretório existe). Eu estava procurando por um método genérico para descobrir qual processo tenta criar um diretório específico.
Stéphane Gimenez
@ StéphaneGimenez: não estava claro para mim desde o início que o método para rastrear o problema era mais importante para você do que o próprio problema.
enzotib 24/09/11
0

Se o aplicativo ainda estiver em execução, você poderá encontrar um arquivo aberto nesse diretório usando lsof. Como o diretório é apenas parte do nome do arquivo, não acho que você possa usá-lo como parâmetro de lsof; portanto, você precisará grep para uma parte dele.

lsof | grep $HOME/Desktop
Danny Staple
fonte
É improvável que funcione, porque é improvável que o aplicativo tenha um arquivo aberto ~/Desktopno momento em que você é executado lsofe pode muito bem ter criado o diretório e não ter feito mais nada nele.
Gilles 'SO- stop be evil'
Daí o "você pode". As outras respostas sobre como evitar isso, e as bibliotecas da área de trabalho que provavelmente são responsáveis, fazem sentido. No entanto, se algum arquivo estivesse sendo criado assim em um dispositivo, eu começaria com esse método e, na sua falta, começaria com uma pré-carga ld e afirmaria quando tentassem criar esse diretório - obviamente extremo demais para esta pergunta, mas divertido.
Danny Staple