Je me demande comment accéder non seulement aux variables définies ~/.config/user-dirs.dirs
avec xdg-user-dir
, par exemple "$(xdg-user-dir VIDEOS)"
, mais aussi aux variables standard suivantes:
XDG_CACHE_HOME:-$HOME/.cache
XDG_CONFIG_HOME:-$HOME/.config
XDG_DATA_HOME:-$HOME/.local/share
XDG_RUNTIME_DIR:-"/run/user/$USER"
XDG_CONFIG_DIRS:-/etc/xdg
XDG_DATA_DIRS:-/usr/local/share:/usr/share
À cet effet, je fais ce qui suit dans mon ~/.bash_login
dossier:
# Define standard directories.
declare -gx XDG_CACHE_HOME=~/.cache
declare -gx XDG_CONFIG_HOME=~/.config
declare -gx XDG_DATA_HOME=~/.local/share
declare -gx XDG_RUNTIME_DIR="/run/user/$USER"
declare -gx XDG_CONFIG_DIRS="$(IFS=: path /etc/xdg)"
declare -gx XDG_DATA_DIRS="$(IFS=: path /usr/local/share:/usr/share)"
# Source supplementary directories to export or overwrite existing standard ones.
declare a="$XDG_CONFIG_HOME/user-dirs.dirs"
if [[ -e $a ]]; then
source "$a"
declare b=""
for b in ${!XDG_*}; do
if [[ $b =~ ^XDG_[_[:alnum:]]+_DIR$ ]]; then
declare -gx "$b"
fi
done
fi
Existe-t-il un mécanisme pour accéder aux variables de répertoire et de chemin ci-dessus autres que les variables de répertoire utilisateur définies par la spécification de structure de répertoire "XDG"?
bash
directory-structure
freedesktop
Tim Friske
la source
la source
XDG_RUNTIME_DIR:-"/run/user/$UID"
Réponses:
Ces variables d'environnement sont toutes facultatives. S'ils ne sont pas définis, votre script doit remplacer les valeurs par défaut données dans la spécification elle-même.
la source
"${XDG_CACHE_HOME:-~/.cache}"
accès. Idéalement, il devrait exister un mécanisme similaire à"$(xdg-user-dir VIDEOS)"
celui de la fourniture implicite de cette valeur par défaut. De cette façon, je n'ai pas à me souvenir de la valeur par défaut pour chaque variable XDG."${XDG_CACHE_HOME:-~/.cache}"
c'est incorrect, il faut utiliser à la"${XDG_CACHE_HOME:-$HOME/.cache}"
place.Plus les valeurs par défaut:
man xdg-user-dir
=> VOIR AUSSI:xdg-user-dirs-update
(1)man xdg-user-dirs-update
=> VOIR AUSSI:user-dirs.defaults
(5)man user-dirs.defaults
=>user-dirs.defaults
Sous le premierXDG_CONFIG_DIRS
(par défaut:/etc/xdg
)Donc:
la source