当前用户桌面目录的路径存储在哪里?

当前用户桌面目录的路径存储在哪里?

我对 Linux 非常陌生,正在经历并学习所有基础知识。当我这样做时,我意识到操作系统以不同的方式对待某些文件是多么奇怪——即,如果它们恰好是与当前登录用户关联的桌面文件,则将它们显示在 GUI 桌面环境上。操作系统如何知道当前用户桌面目录的路径变量?为了黑客的乐趣,是否可以更改为在 GUI 桌面上显示任意目录?

答案1

桌面目录的默认路径因语言而异。因此,如果您的系统上存在这样的情况,则$HOME/Desktop可以得到更好的猜测:xdg-user-dir

$ xdg-user-dir DESKTOP
/home/arnie97/桌面

(注意,包名是xdg-用户目录s,而可执行文件名称为 xdg-user-目录。感谢@theDrake 指出了这一点。)


还有另一种方法xdg-user-dirs主页,不幸的是,这在我的系统上不起作用:

以下是如何查找桌面和下载目录的 shellscript 示例:

test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}
echo ${XDG_DOWNLOAD_DIR:-$HOME}

对于应用程序代码,希望各种桌面能够集成它,并有一个很好的 API 来查找这些目录。

答案2

一般来说,在GNU/Linux(如Unix)中,用户的桌面目录可以用~/Desktop.简写~/将扩展到主目录的任何内容,例如/path/to/home/username.

我应该澄清的是,大多数贝壳(例如 bash、ksh、csh 等)将扩展~到主目录,但不是全部(例如 rc)。波形符是一个文字字符,因此您可以拥有一个文件~filename;因此,外壳的设计必须能够在一定条件下扩展波形符。

答案3

大多数发行版的路径(我说的是大多数,而不是全部,因为 Linux(或 GNU/Linux),如果不可变,无论好坏,就什么都不是),/home/<user name>/Desktop 您可以通过命令行访问它,如下所示cd /home/<username>/Desktop :文件很简单,只需使用不带引号的命令“ls”即可。

答案4

这取决于您的桌面环境:

如果您使用窗口管理器,则可以使用不同的工具在桌面上显示内容,例如PCmanFM桌面

大多数工具和桌面环境都会尊重您的 xdg-user-dir DESKTOP 设置。

相关内容