Каталог рабочего стола зависит от языка системы. Добавляя к параметрам, указанным для другого человека, вы можете найти файл ~/.config/users -dirs.dirs
Пример, когда вы можете прочитать содержимое:
cat ~/.config/users-dirs.dirs
В моей машине показано это:
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Escritorio"
XDG_DOWNLOAD_DIR="$HOME/Descargas"
XDG_TEMPLATES_DIR="$HOME/Plantillas"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imágenes"
XDG_VIDEOS_DIR="$HOME/Vídeos"
Мой каталог на рабочем столе выглядит так: :"$HOME/Escritorio", где $HOME – это переменная среды, которая ссылается на вашу домашнюю папку. На практике:
cd ~/Escritorio
# is the same
cd "$HOME/Escritorio"
Если вы хотите получить каталог рабочего стола с помощью программирования, вы можете прочитать файл и проанализировать его содержимое. Например, посмотрите мой код javascript для получения каталога рабочего стола:
async getLinuxDesktop(){
let file = Path.join(Os.homedir(), ".config", "user-dirs.dirs")
let data = {}
if(fs.existsSync(file)){
let content = await fs.readFileAsync(file,"utf8")
let lines = content.split(/\r?\n/g).filter((a)=> !a.startsWith("#"))
for(let line of lines){
let i = line.indexOf("=")
if(i >= 0){
try{
data[line.substring(0,i)] = JSON.parse(line.substring(i + 1))
}catch(e){}
}
}
}
if(data["XDG_DESKTOP_DIR"]){
let desktop = data["XDG_DESKTOP_DIR"]
desktop = desktop.replace(/\$([A-Za-z\-\_]+)|\$\{([^\{^\}]+)\}/g, (_, a, b) => (process.env[a || b] || ""))
return desktop
}else{
return Path.join(Os.homedir(),"Desktop")
}
}