linux – 如何获得给定用户“桌面路径”

如何获取给定用户桌面的路径?

我用过这个:

echo $(awk "NR==$(awk 'BEGIN {FS=":"} {print $3}' /etc/passwd | awk "/^$(id -u USERSNAMEHERE)$/ {print NR}")" /etc/passwd | awk 'BEGIN {FS=":"} {print $6}')/Desktop

还有更好的吗?

如果用户桌面名称不是“桌面”怎么办?

谢谢!

p.s.:使用Fedora 14,但有没有“通用”方法来找出给定的用户桌面?

解决方法

试试 xdg-user-dirs.

页面一个应该适用于当前用户的示例:

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

此外,如果您必须阅读/ etc / passwd,最好使用getent passwd的输出,因为某些用户数据可能存储在NIS,LDAP或其他一些数据库中.

结合使用它,它适用于名为USERSNAMEHERE的用户

USER=USERSNAMEHERE
USERDIR=$(getent passwd $USER | cut -f 6 -d :)
USERDIRCONF=${XDG_CONfig_HOME:-$USERDIR/.config}/user-dirs.dirs
test -f "$USERDIRCONF" && . "$USERDIRCONF"
echo "${XDG_DESKTOP_DIR:-$USERDIR/Desktop}"

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...