Którą aplikację powinienem winić za kompulsywne tworzenie katalogu wielokrotnie?

21

W moim systemie jest aplikacja, która ciągle tworzy pusty ~/Desktopkatalog. Nie mogę znieść wielkich liter w moim domu, ani nie mogę znieść tego „pulpitu”. Tak wybredny jak ja, usuwam katalog za każdym razem, gdy go widzę. Naprawdę chciałbym wiedzieć, która aplikacja jest za to odpowiedzialna (prawdopodobnie niektóre aplikacje nie będą tak często używane¹).

Jakieś dobre pomysły, aby wytropić winowajcę?

-
1. Oczywiście chciałbym się go pozbyć, a może załatać, jeśli nie mogę bez niego żyć.

Stéphane Gimenez
źródło

Odpowiedzi:

11

Ten katalog może zostać utworzony przez dowolną aplikację zgodną ze standardem katalogów użytkowników Freedesktop . Dotyczy to potencjalnie wszystkich aplikacji Gnome lub KDE.

Jeśli chcesz wiedzieć, która aplikacja tworzy plik, możesz użyć systemu plików LoggedFS lub podsystemu kontroli systemu Linux . Zobacz Czy można dowiedzieć się, jaki program lub skrypt utworzył dany plik? po więcej informacji.

Gilles „SO- przestań być zły”
źródło
Więc moje pytanie jest dokładnym duplikatem… Dzięki!
Stéphane Gimenez,
I twoja odpowiedź (odpowiedzi) wydaje się być jedyną odpowiedzią na pytanie.
Stéphane Gimenez,
@ StéphaneGimenez Technicznie pytanie jest duplikatem, ale w tym konkretnym przypadku poprawną odpowiedzią dla większości ludzi jest to, że zostało stworzone przez niektóre aplikacje zgodne z Freedesktop i nie ma sensu z nim walczyć (próbowałem, a potem stworzyłem a ~/.config/user-dirs.dirs). Na przykład komentarz w mojej user-dirs.dirspamięci przypomina mi, że w Ubuntu odkryłem, że katalogi są tworzone przez xdg-user-dirs-updatewywołanie z /etc/Xsession.d/*podczas logowania.
Gilles „SO- przestań być zły”
8

Wygląda to na katalog z jednego z darmowych standardów pulpitu . Każda aplikacja zgodna z tym może go tworzyć.

Te „standardowe” katalogi można określić w $HOME/.config/user-dirs.dirs. Możesz zmienić tam nazwę, aby nie zaczynać od dużej litery i gdzieś się ukryć, ale całkowite pozbycie się będzie trudne.

Istnieje jeden program ( xdg-user-dirs-update), którego celem jest tworzenie tych katalogów, patrz katalogi xdg-users-dirs . Jeśli powinien być w stanie go dezaktywować, korzystając z elementu $HOME/.config/user-dirs.confzawierającego

enabled=False
AProgrammer
źródło
Obejścia są mile widziane, ale chciałbym wiedzieć, która aplikacja tworzy ten katalog (chciałbym go złapać w momencie ponownego utworzenia katalogu).
Stéphane Gimenez
Dzięki, spróbuję tego. Ale mogę tylko mieć nadzieję, że aplikacja sama nie tworzy katalogu.
Stéphane Gimenez
Gdzie znalazłeś te enabledinformacje? Czytanie xdg-users-dirswydaje się nie mieć żadnego wpływu na scenariusz.
Stéphane Gimenez
Tu i potem czytanie/etc/xdg/user-dirs.conf
AProgrammer
Ok dzięki, program, który czyta plik conf jest xdg-users-dirs-update.
Stéphane Gimenez
0

Jeśli jesteś kompletnym środowiskiem graficznym na swoim urządzeniu (X i jakieś środowisko graficzne, takie jak Gnome lub KDE), niewątpliwie będzie to proces środowiska graficznego. Prawdopodobnie utworzy katalog Desktop za każdym razem, gdy się zalogujesz. Proces odpowiedzialny za utworzenie katalogu jest całkowicie zależny od środowiska, w którym pracujesz.

Friek
źródło
Pytanie było ogólne, ponieważ jest to izolowany proces. Nie używam żadnego „środowiska graficznego”, tylko serwer X11 z ledwo minimalnym menedżerem okien.
Stéphane Gimenez,
0

W Debianie i Ubuntu widać, że jest wpis user-dirs-update-gtk.desktopw /etc/xdg/autostart/.

Usunięcie tego wpisu uniemożliwia ponowne utworzenie katalogów użytkowników.

To coś, co pochodzi ze standardu freedesktop, jest prawdopodobne, że działa to również w innych dystrybucjach.

enzotib
źródło
Nic tam nie ma (ale katalog istnieje). Szukałem ogólnej metody znalezienia, który proces próbuje utworzyć określony katalog.
Stéphane Gimenez,
@ StéphaneGimenez: od początku nie było dla mnie jasne, że metoda wyśledzenia problemu była dla Ciebie ważniejsza niż sam problem.
enzotib
0

Jeśli aplikacja nadal działa, możesz znaleźć otwarty plik w tym katalogu za pomocą lsof. Ponieważ katalog jest tylko częścią nazwy pliku, nie sądzę, abyś mógł użyć go jako parametru lsof, więc musisz grep dla jego części.

lsof | grep $HOME/Desktop
Danny Staple
źródło
Jest mało prawdopodobne, aby zadziałało, ponieważ jest mało prawdopodobne, aby aplikacja miała otwarty plik ~/Desktoppodczas uruchamiania lsof, a może i tak utworzył katalog i nic innego w nim nie zrobił.
Gilles „SO- przestań być zły”
Stąd „możesz”. Inne odpowiedzi na temat zapobiegania temu, a to prawdopodobnie biblioteki pulpitu, które prawdopodobnie są odpowiedzialne, mają sens. Gdyby jednak utworzono taki plik na urządzeniu, zacznę od tej metody, a w przeciwnym razie zacznę od ld wstępnego ładowania i stwierdzenia, gdy spróbują utworzyć ten katalog - oczywiście zdecydowanie zbyt ekstremalne dla tego pytania, ale zabawne.
Danny Staple