Quelle application devrais-je blâmer pour avoir créé de façon compulsive un répertoire encore et encore?

21

Il y a une application sur mon système qui crée ~/Desktopencore et encore un répertoire vide . Je ne supporte pas les majuscules dans ma maison, je ne supporte pas non plus ce truc de "bureau". Donc, aussi pointilleux que je suis, je supprime le répertoire chaque fois que je le vois. J'aimerais vraiment savoir quelle application est responsable de cela (probablement une application que je n'utiliserai pas si souvent¹).

Des bonnes idées pour retrouver le coupable?

-
1. Évidemment, j'aimerais m'en débarrasser, ou peut-être le réparer si je ne peux pas m'en passer.

Stéphane Gimenez
la source

Réponses:

11

Ce répertoire peut être créé par toute application qui respecte la norme Freedesktop userdirs . Cela inclut potentiellement toutes les applications Gnome ou KDE.

Si vous voulez savoir quelle application crée le fichier, vous pouvez utiliser le système de fichiers LoggedFS ou le sous- système d'audit Linux . Voir Est-il possible de savoir quel programme ou script a créé un fichier donné? pour plus d'informations.

Gilles 'SO- arrête d'être méchant'
la source
Donc ma question est un duplicata exact… Merci!
Stéphane Gimenez
Et votre ou vos réponses semblent être les seules à répondre à la question.
Stéphane Gimenez
@ StéphaneGimenez Techniquement, la question est un doublon, mais pour ce cas particulier, la bonne réponse pour la plupart des gens est qu'elle est créée par une application compatible Freedesktop et qu'il est inutile de la combattre (j'ai essayé, puis j'ai créé une ~/.config/user-dirs.dirs). Par exemple, un commentaire dans mon user-dirs.dirsme rappelle que sur Ubuntu, j'ai trouvé que les répertoires sont créés par xdg-user-dirs-updateappelé depuis /etc/Xsession.d/*au moment de la connexion.
Gilles 'SO- arrête d'être méchant'
8

Cela ressemble à un répertoire de l'une des normes de bureau gratuites . N'importe quelle application conforme pourrait le créer.

Ces répertoires "standard" peuvent être spécifiés dans $HOME/.config/user-dirs.dirs. Vous pouvez changer le nom pour ne pas commencer par une majuscule et être caché quelque part, mais il sera difficile de vous en débarrasser totalement.

Il existe un programme ( xdg-user-dirs-update) dont le but est de créer ces répertoires, voir xdg-users-dirs . Si devrait être en mesure de le désactiver en ayant un $HOME/.config/user-dirs.confcontenant

enabled=False
AProgrammer
la source
Les solutions de contournement sont les bienvenues, mais j'aimerais savoir quelle application crée ce répertoire (j'aimerais l'attraper au moment où le répertoire est à nouveau créé).
Stéphane Gimenez
Merci, je vais essayer ça. Mais je ne peux qu'espérer que l'application ne crée pas le répertoire par elle-même.
Stéphane Gimenez
Où avez-vous trouvé cette enabledinformation? En lecture xdg-users-dirs, cela semble n'avoir aucune influence sur le script.
Stéphane Gimenez
Ici et puis lecture/etc/xdg/user-dirs.conf
AProgrammer
Ok merci, le programme qui lit le fichier conf est xdg-users-dirs-update.
Stéphane Gimenez
0

Si vous êtes un environnement graphique complet sur votre box (X et certains environnements de bureau comme Gnome ou KDE), il s'agira sans aucun doute d'un processus de votre environnement de bureau. Il créera probablement le répertoire Desktop à chaque connexion. Le processus responsable de la création du répertoire dépend entièrement de l'environnement de bureau que vous exécutez.

Friek
la source
La question était générique parce que c'est un processus isolé. Je n'utilise aucun "environnement graphique", juste un serveur X11 avec un gestionnaire de fenêtres à peine minimal.
Stéphane Gimenez
0

Sur Debian et Ubuntu, vous pouvez voir qu'il y a une entrée user-dirs-update-gtk.desktopdans /etc/xdg/autostart/.

La suppression de cette entrée empêche de créer à nouveau des répertoires d'utilisateurs.

Étant une chose venant de la norme freedesktop, il est probable que cela fonctionne aussi dans d'autres distributions.

enzotib
la source
Rien là-bas (mais le répertoire existe). Je cherchais une méthode générique pour trouver quel processus tentait de créer un répertoire spécifique.
Stéphane Gimenez
@ StéphaneGimenez: il ne m'était pas clair depuis le début que la méthode pour traquer le problème était plus importante pour vous que le problème lui-même.
enzotib
0

Si l'application est toujours en cours d'exécution, vous pourrez peut-être trouver un fichier ouvert dans ce répertoire à l'aide de lsof. Étant donné que le répertoire n'est qu'une partie du nom de fichier, je ne pense pas que vous seriez en mesure de l'utiliser comme paramètre de lsof, donc vous auriez besoin de grep pour une partie de celui-ci.

lsof | grep $HOME/Desktop
Danny Staple
la source
Il est peu probable que cela fonctionne, car l'application n'a probablement pas de fichier ouvert ~/Desktopau moment de l'exécution lsof, et il est fort possible qu'elle ait créé le répertoire et n'y ait fait rien d'autre de toute façon.
Gilles 'SO- arrête d'être méchant'
D'où le "vous pouvez". Les autres réponses sur la prévention de ce problème, et ce sont les bibliothèques de bureau qui sont probablement responsables, ont du sens. Cependant, si un fichier était créé comme ça sur un appareil, je commencerais par cette méthode, et à défaut, commencerais les choses avec une précharge ld et affirmer quand ils essayaient de créer ce répertoire - évidemment beaucoup trop extrême pour cette question, mais amusant.
Danny Staple