如何获取语言变量(桌面文件夹名称、文档文件夹名称等)

如何获取语言变量(桌面文件夹名称、文档文件夹名称等)

我正在编写一个脚本,正在寻找一种方法来获取桌面、音乐、文档、图片和其他文件夹的变量名称。它们会根据语言而变化。例如,西班牙语中的桌面是 Escritorio。那么,如何才能获取文件夹目录,而无需找出用户正在使用的语言或必须为每种语言创建多个 IF 语句。

答案1

有一个名为的工具xdg-user-dir可以检索用户目录路径

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

来自文档:

xdg-user-dir 查找特殊 XDG 用户目录之一的当前路径。

此命令需要 XDG 用户目录的名称作为参数。可能的名称包括:

  • 桌面
  • 下载
  • 模板
  • 公开分享
  • 文件
  • 音乐
  • 图片
  • 视频

我正在使用 Ubuntu 16.04,我不清楚以前的版本中是否有这个功能。

答案2

常见的文件夹名称如下。只是从主目录中的文件中提取。

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

相关问题:如何更改主文件夹中内容目录(例如图片、模板、音乐)的默认位置?

希望这会有所帮助。

答案3

也许有更简单的方法可以做到这一点,但这就是我所做的:

例如获取桌面文件夹:

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

对于其他变量也是类似。

相关内容