Experimente xdg-user-dirs .
Essa página tem um exemplo que deve funcionar para o usuário atual:
test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && \
source ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
echo ${XDG_DESKTOP_DIR:-$HOME/Desktop}
Além disso, se você tiver que ler /etc/passwd
, é melhor usar a saída de getent passwd
, porque alguns dados do usuário podem ser armazenados em NIS, LDAP ou algum outro banco de dados.
Combinando isso para que funcione para um usuário chamado 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}"