Как получить языковые переменные (имя папки рабочего стола, имя папки документа и т. Д.)

Я делаю сценарий и ищу способ получения имен переменных для рабочего стола, музыки, документов, изображений и других папок. В зависимости от языка они меняются. Например, рабочий стол на испанском языке - Escritorio. Итак, как я могу получить каталог папки, не выясняя, какой язык использует пользователь или не делая несколько операторов IF для каждого языка.

5
задан 28 September 2012 в 20:53

3 ответа

Существует названный инструмент xdg-user-dir это получает пользовательские пути каталогов

documents_path=$(xdg-user-dir DOCUMENTS)
echo $documents_path

Из документов:

xdg-user-dir ищет текущий путь для одного из специальных пользовательских директоров XDG.

Эта команда ожидает название пользовательского dir XDG как аргумент. Возможные имена:

  • РАБОЧИЙ СТОЛ
  • Скачать
  • ШАБЛОНЫ
  • PUBLICSHARE
  • ДОКУМЕНТЫ
  • МУЗЫКА
  • ИЗОБРАЖЕНИЯ
  • ВИДЕО

Я использую Ubuntu 16.04, я действительно не знаю, доступно ли это в предыдущих выпусках.

5
ответ дан 28 September 2012 в 20:53

Общие имена папок следующие. Просто извлечен из файла в домашнем каталоге.

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/Videos"

Конечно, вас интересует только имя переменной. Так что есть XDG_DESKTOP_DIR, XDG_DOWNLOAD_DIR, .... etc.

Смежный вопрос: Как изменить расположение по умолчанию каталогов содержимого (например, «Изображения», «Шаблоны», «Музыка») в моей домашней папке?

Надеюсь, это поможет.

0
ответ дан 28 September 2012 в 20:53

Возможно, есть более простой способ сделать это, но вот что я сделал:

Например, получение папки рабочего стола:

desktopVar=$(cat $HOME/.config/user-dirs.dirs | grep "XDG_DESKTOP_DIR")
desktopFolder=$(echo ${desktopVar/XDG_DESKTOP_DIR=/""} | tr -d '"')
echo $desktopFolder

Для других переменных аналогично. 113]

0
ответ дан 28 September 2012 в 20:53

Другие вопросы по тегам:

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