我应该归咎于哪个应用程序一次又一次地创建目录?


21

我的系统上有一个应用程序,它~/Desktop一次又一次地创建一个空目录。我不能在家里忍受大写字母,也不能忍受这个“桌面”东西。因此,就像我一样挑剔,每次看到目录都会删除它。我真的很想知道哪个应用程序对此负责(也许我不会经常使用某些应用程序¹)。

有什么好主意可以追究罪魁祸首吗?


1.显然,我想摆脱它,或者如果我不能没有它,也许可以修补它。

Answers:


11

遵循Freedesktop userdirs标准的任何应用程序都可以创建此目录。这可能包括所有Gnome或KDE应用程序。

如果您想知道哪个应用程序创建了文件,则可以使用LoggedFS文件系统或Linux 审计子系统。请参阅是否可以找出创建给定文件的程序或脚本?想要查询更多的信息。


所以我的问题是重复的……谢谢!
斯特凡希门尼斯

而且您的答案似乎只有一个能真正回答问题。
斯蒂芬·吉梅内斯

@StéphaneGimenez从技术上讲,这个问题是重复的,但对于特定情况,大多数人的正确答案是,它是由某些Freedesktop兼容应用程序创建的,它无济于事(我尝试过,然后创建了一个~/.config/user-dirs.dirs)。例如,我的评论user-dirs.dirs提醒我,在Ubuntu上,我发现目录是在登录时通过xdg-user-dirs-updatefrom调用创建的/etc/Xsession.d/*
吉尔(Gilles)“所以

8

这看起来像是免费桌面标准之一的目录。任何与其兼容的应用程序都可以创建它。

这些“标准”目录可以在中指定$HOME/.config/user-dirs.dirs。您可以在此处更改名称,而不必以大写字母开头,也可以将其隐藏在某个地方,但是要完全摆脱它会很困难。

有一个程序(xdg-user-dirs-update)的目的是创建这些目录,请参阅xdg-users-dirs。如果应该能够通过$HOME/.config/user-dirs.conf包含

enabled=False

欢迎使用变通方法,但是我想知道哪个应用程序正在创建此目录(我想在再次创建目录时捕获它)。
斯特凡希门尼斯

谢谢,我会尝试的。但是我只能希望应用程序不会自己创建目录。
斯特凡希门尼斯

您在哪里找到此enabled信息?阅读xdg-users-dirs,这似乎对脚本完全没有影响。
斯特凡希门尼斯

在这里然后阅读/etc/xdg/user-dirs.conf
AProgrammer

好的,谢谢,读取conf文件的程序是xdg-users-dirs-update
斯蒂芬·吉梅内斯

0

如果您的设备上是完整的图形环境(X和某些桌面环境,如Gnome或KDE),那么无疑将是您桌面环境的一个过程。每次登录时,它可能会创建一个Desktop目录。负责创建目录的过程完全取决于您所运行的桌面环境。


这个问题很笼统,因为它是一个孤立的过程。我没有使用任何“图形环境”,而只是使用X11服务器以及几乎没有最小的窗口管理器。
斯特凡希门尼斯

0

在Debian和Ubuntu,你可以看到有一个条目user-dirs-update-gtk.desktop/etc/xdg/autostart/

删除该条目可防止再次创建用户目录。

是来自freedesktop标准的东西,这也可能在其他发行版中起作用。


那里什么都没有(但目录存在)。我正在寻找一种通用方法来查找哪个进程尝试创建特定目录。
斯特凡希门尼斯

@StéphaneGimenez:从一开始我就不清楚,找出问题的方法对您来说比问题本身更重要。
enzotib

0

如果应用程序仍在运行,则可以使用lsof在该目录中找到打开的文件。由于目录仅是文件名的一部分,因此我认为您无法将其用作lsof的参数,因此您需要grep才能使用其中的一部分。

lsof | grep $HOME/Desktop

这不太可能起作用,因为在~/Desktop您运行时应用程序不太可能在其下打开文件lsof,并且它很可能已经创建了目录,并且在目录中什么也没做。
吉尔(Gilles)“所以

因此,“你可以”。关于防止这种情况的其他答案,可能是负责任的桌面库很有意义。但是,如果是在设备上这样创建的某个文件,我将以这种方法开始,如果失败,则以ld preload开始,并在他们尝试创建该目录时进行断言-对于这个问题,显然太极端了,但是很有趣。
Danny Staple
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.