Где хранится путь к каталогу рабочего стола текущего пользователя?

Простое решение ошибки

#!/bin/sh

for last; do : ; done

while [ $# -gt 1 ]; do
  mkdir -p "${last}/$(dirname "$1")"
  cp --parents "$1" "$last"
  shift
done
2
13.09.2017, 05:45
3 ответа

Это зависит от вашей среды рабочего стола:

Если вы используете оконный менеджер, вы можете использовать различные инструменты для отображения элементов на рабочем столе, например. Рабочий стол PCmanFM .

Большинство инструментов и окружений рабочего стола учитывают ваши настройки xdg -user -dir DESKTOP.

0
27.01.2020, 21:55

Как правило, в GNU/Linux (, как и в Unix ), каталог рабочего стола пользователя можно указать с помощью ~/Desktop. Сокращение ~/будет расширяться до любого домашнего каталога, например /path/to/home/username.

Следует пояснить, что большинство снарядов (, например. bash, ksh, csh и т. д. )расширит ~до домашнего каталога, но не все из них (, например. rc ). Тильда — буквальный символ, так что вы можете иметь файл ~filename; следовательно, оболочка должна быть рассчитана на расширение тильды при определенных условиях.

1
27.01.2020, 21:55

Каталог рабочего стола зависит от языка системы. Добавляя к параметрам, указанным для другого человека, вы можете найти файл ~/.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")
    }
}
1
27.01.2020, 21:55

Теги

Похожие вопросы