gpt4 book ai didi

linux - 如何在 red hat Linux shell 脚本中获取指定用户的桌面文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:48 25 4
gpt4 key购买 nike

出于安装目的,我需要使用 Qvwm 定位所有 Linux 的桌面文件夹当前机器上的用户。

我有以下脚本:

HOMES=`getent passwd | cut -d: -f6`
SHORTCUT=/path/to/shortcut.desktop
find $HOMES -maxdepth 3 -name "Desktop" -exec cp $SHORTCUT {} \;

但我知道用户桌面文件夹可能与“桌面”不同。

问题是:如何确定系统中所有/指定用户的桌面文件夹的正确路径。

谢谢你的建议..

最佳答案

对于 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

关于linux - 如何在 red hat Linux shell 脚本中获取指定用户的桌面文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52858999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com