¿Qué aplicación debería culpar por crear compulsivamente un directorio una y otra vez?

21

Hay una aplicación en mi sistema que sigue creando un ~/Desktopdirectorio vacío una y otra vez. No puedo soportar letras mayúsculas en mi casa, ni puedo soportar esta cosita de "escritorio". Entonces, tan exigente como soy, elimino el directorio cada vez que lo veo. Realmente me gustaría saber qué aplicación es responsable de eso (probablemente alguna aplicación que no use con tanta frecuencia¹).

¿Alguna buena idea para localizar al culpable?

-
1. Obviamente me gustaría deshacerme de él, o tal vez parchearlo si no puedo vivir sin él.

Stéphane Gimenez
fuente

Respuestas:

11

Este directorio puede ser creado por cualquier aplicación que siga el estándar de Freedesktop userdirs . Potencialmente incluye todas las aplicaciones de Gnome o KDE.

Si desea saber qué aplicación crea el archivo, puede usar el sistema de archivos LoggedFS o el subsistema de auditoría de Linux . Consulte ¿Es posible averiguar qué programa o script creó un archivo determinado? para más información.

Gilles 'SO- deja de ser malvado'
fuente
Entonces mi pregunta es un duplicado exacto ... ¡Gracias!
Stéphane Gimenez
Y su (s) respuesta (s) parece ser la única (s) que realmente responde la pregunta.
Stéphane Gimenez
@ StéphaneGimenez Técnicamente, la pregunta es un duplicado, pero para ese caso en particular, la respuesta correcta para la mayoría de las personas es que es creada por alguna aplicación compatible con Freedesktop y es inútil luchar contra ella (lo intenté, y luego creé un ~/.config/user-dirs.dirs). Por ejemplo, un comentario en mi user-dirs.dirsme recuerda que en Ubuntu, descubrí que los directorios se crean mediante una xdg-user-dirs-updatellamada desde el /etc/Xsession.d/*momento de inicio de sesión.
Gilles 'SO- deja de ser malvado'
8

Esto parece un directorio de uno de los estándares de escritorio gratuitos . Cualquier aplicación que lo cumpla podría estar creándolo.

Esos directorios "estándar" se pueden especificar en $HOME/.config/user-dirs.dirs. Puede cambiar el nombre allí para no comenzar con una letra mayúscula y estar oculto en alguna parte, pero deshacerse por completo será difícil.

Hay un programa ( xdg-user-dirs-update) cuyo objetivo es crear esos directorios, vea xdg-users-dirs . Si debe ser capaz de desactivarlo por tener una $HOME/.config/user-dirs.confque contiene

enabled=False
Un programador
fuente
Las soluciones son bienvenidas, pero me gustaría saber qué aplicación está creando este directorio (me gustaría detectarlo en el momento en que se crea nuevamente el directorio).
Stéphane Gimenez
Gracias, lo intentaré. Pero solo puedo esperar que la aplicación no esté creando el directorio por sí misma.
Stéphane Gimenez
¿Dónde encontraste esta enabledinformación? Lectura xdg-users-dirs, esto parece no tener ninguna influencia en el guión.
Stéphane Gimenez
Aquí y luego leyendo/etc/xdg/user-dirs.conf
AProgrammer
Ok, gracias, el programa que lee el archivo conf es xdg-users-dirs-update.
Stéphane Gimenez
0

Si es un entorno gráfico completo en su caja (X y algunos entornos de escritorio como Gnome o KDE), sin duda será un proceso de su entorno de escritorio. Probablemente creará el directorio de escritorio cada vez que inicie sesión. El proceso responsable de crear el directorio depende completamente del entorno de escritorio que esté ejecutando.

Friek
fuente
La pregunta era genérica porque es un proceso aislado. No estoy usando ningún "entorno gráfico", solo un servidor X11 con un administrador de ventanas apenas mínimo.
Stéphane Gimenez
0

En Debian y Ubuntu se podía ver que hay una entrada user-dirs-update-gtk.desktopen /etc/xdg/autostart/.

Eliminar esa entrada impide volver a crear directorios de usuarios.

Siendo algo que viene del estándar de escritorio gratuito, es probable que esto también funcione en otras distribuciones.

enzotib
fuente
Nada allí (pero el directorio existe). Estaba buscando un método genérico para encontrar qué proceso intenta crear un directorio específico.
Stéphane Gimenez
@ StéphaneGiménez: desde el principio no me quedó claro que el método para rastrear el problema era más importante para usted que el problema en sí.
enzotib
0

Si la aplicación aún se está ejecutando, puede encontrar un archivo abierto en ese directorio usando lsof. Dado que el directorio es solo una parte del nombre de archivo, no creo que pueda usarlo como parámetro de lsof, por lo que necesitaría grep para una parte de él.

lsof | grep $HOME/Desktop
Danny Staple
fuente
Es poco probable que esto funcione, porque es poco probable que la aplicación tenga un archivo abierto ~/Desktopen el momento en que se ejecuta lsof, y bien puede haber creado el directorio y no haber hecho nada más dentro de él de todos modos.
Gilles 'SO- deja de ser malvado'
De ahí el "puedes". Las otras respuestas sobre cómo evitar esto, y son las bibliotecas de escritorio las que probablemente sean responsables, tienen sentido. Sin embargo, si se creara un archivo como este en un dispositivo, comenzaría con este método y, en su defecto, comenzaría con una precarga de ld y afirmaría cuándo trataron de crear ese directorio, obviamente demasiado extremo para esta pregunta, pero divertido.
Danny Staple