Me pregunto cómo el acceso no sólo a las variables definidas en ~/.config/user-dirs.dirs
la xdg-user-dir
, por ejemplo "$(xdg-user-dir VIDEOS)"
, pero también las siguientes variables estándar:
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
Para ello, hago lo siguiente en mi ~/.bash_login
archivo:
# 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 algún mecanismo para acceder a las variables de ruta y directorio anteriores además de las variables de directorio de usuario definidas por la especificación de estructura de directorio "XDG"?
bash
directory-structure
freedesktop
Tim Friske
fuente
fuente
XDG_RUNTIME_DIR:-"/run/user/$UID"
Respuestas:
Esas variables de entorno son todas opcionales. Si no están configurados, su secuencia de comandos debe sustituir los valores predeterminados dados en la especificación misma.
fuente
"${XDG_CACHE_HOME:-~/.cache}"
acceso. Óptimamente debería existir un mecanismo similar al que existe al"$(xdg-user-dir VIDEOS)"
proporcionar ese valor predeterminado implícitamente. De esa manera no tengo que recordar el valor predeterminado para todas y cada una de las variables XDG."${XDG_CACHE_HOME:-~/.cache}"
es incorrecto, uno debería usar"${XDG_CACHE_HOME:-$HOME/.cache}"
en su lugar.Además de los valores predeterminados:
man xdg-user-dir
=> VER TAMBIÉN:xdg-user-dirs-update
(1)man xdg-user-dirs-update
=> VER TAMBIÉN:user-dirs.defaults
(5)man user-dirs.defaults
=>user-dirs.defaults
Bajo primeroXDG_CONFIG_DIRS
(por defecto:/etc/xdg
)Entonces:
fuente