我对 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
这取决于您的桌面环境:
- KDE:您可以显示许多任意目录:https://docs.kde.org/trunk5/en/kde-workspace/plasma-desktop/folder-view.html
- GNOME:您需要一个特殊的扩展名:https://extensions.gnome.org/extension/1465/desktop-icons/
如果您使用窗口管理器,则可以使用不同的工具在桌面上显示内容,例如PCmanFM桌面。
大多数工具和桌面环境都会尊重您的 xdg-user-dir DESKTOP 设置。