出于安装目的,我需要在当前计算机上找到Qvwm位用户的所有Linux桌面文件夹。
我有以下脚本:
HOMES=`getent passwd | cut -d: -f6`
SHORTCUT=/path/to/shortcut.desktop
find $HOMES -maxdepth 3 -name "Desktop" -exec cp $SHORTCUT {} \;
但是我知道用户桌面文件夹可能不同于“桌面”。
问题是:如何确定系统中所有/指定用户的桌面文件夹的正确路径。
感谢您的建议。
答案 0 :(得分:2)
对于XDG Base Directory Specification之后且与xdg-user-dirs
reference implementation兼容的任何桌面环境,其外观如下:
sudo -u "$user" -i bash -l <<'EOF'
user_dirs_file=${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs
[[ -s $user_dirs_file ]] && . "$user_dirs_file"
printf '%s\n' "${XDG_DESKTOP_DIR:-$HOME/Desktop}"
EOF
XDG_CONFIG_HOME
,则指定其主目录位置的配置文件将设置在这样命名的目录中;否则,文件存在于~user/.config
中。$XDG_CONFIG_HOME/user-dirs.dirs
存在并且包含对XDG_DESKTOP_DIR
的分配,则该分配的结果将用作用户的桌面目录。$HOME/Desktop
。