












适用场景:安装 Linux 时选择了中文环境,导致"桌面""下载""文档"等文件夹变成了中文名称。
目标:将这些文件夹恢复为英文(Desktop、Downloads 等),同时保留系统的中文显示和输入能力。
适用系统:Debian系列/ RHEL系列 / Linux Mint 等使用xdg-user-dirs的发行版。
xdg-user-dirsLinux 桌面系统(GNOME、KDE、XFCE 等)使用一个叫做 xdg-user-dirs 的工具来管理用户的"特殊目录"——也就是桌面、下载、文档、音乐、图片、视频这些常用文件夹。
它的工作流程是这样的:
用户登录
→ xdg-user-dirs-update 自动运行
→ 读取 /etc/xdg/user-dirs.defaults(英文默认名)
→ 读取 /etc/xdg/user-dirs.conf(开关配置)
→ 读取 /usr/share/xdg-user-dirs/<locale>.txt(翻译表)
→ 如果启用了翻译,就把英文目录名"翻译"成中文
→ 写入 ~/.config/user-dirs.dirs(实际路径)
→ 写入 ~/.config/user-dirs.locale(记录当前语言)
简单来说:系统默认存的是英文名,但你登录后,xdg-user-dirs-update 发现你的语言是中文(zh_CN),就会自动把目录名"翻译"成中文。
假设 /etc/xdg/user-dirs.defaults 中写着:
DESKTOP=Desktop
DOWNLOAD=Downloads
中文翻译文件 /usr/share/xdg-user-dirs/zh_CN.txt 中写着:
Desktop 桌面
Downloads 下载
Documents 文档
那么当你用中文环境登录时:
Desktop 文件夹桌面| 文件路径 | 作用 | 示例 |
|---|---|---|
/etc/xdg/user-dirs.defaults |
定义特殊目录的英文默认名称 | DESKTOP=Desktop |
/etc/xdg/user-dirs.conf |
全局开关,控制是否启用翻译 | enabled=True |
/usr/share/xdg-user-dirs/zh_CN.txt |
中文翻译对照表 | Desktop 桌面 |
/etc/skel/ |
新用户骨架目录,新用户创建时自动复制 | 包含 .bashrc 等模板文件 |
/etc/xdg/user-dirs.defaults 详解这个文件定义了 8 个标准用户目录的英文名称:
DESKTOP=Desktop
DOWNLOAD=Downloads
TEMPLATES=Templates
PUBLICSHARE=Public
DOCUMENTS=Documents
MUSIC=Music
PICTURES=Pictures
VIDEOS=Videos
原理:这些是"根名称",系统会基于它们创建实际的文件夹。如果启用了翻译,系统会拿着这些英文名去翻译表里查找对应的中文名。
💡 类比理解:这就像一个字典的"原文"部分,翻译时查表找到对应的"译文"。
/etc/xdg/user-dirs.conf 详解enabled=True
filename_encoding=UTF-8
enabled=True:表示登录时自动执行翻译,把英文目录名翻译成本地语言。enabled=False:表示不翻译,保持英文名称。这就是控制"中文/英文文件夹"的总开关!
/usr/share/xdg-user-dirs/zh_CN.txt 翻译表内容格式为 英文名 中文名,每行一对:
Desktop 桌面
Download 下载
Templates 模板
Publicshare 公共
Documents 文档
Music 音乐
Pictures 图片
Videos 视频
⚠️ 注意:你不需要修改这个文件。它是系统的翻译字典,我们只是告诉系统"不要使用这个翻译"。
/etc/skel/ 骨架目录$ ls -la /etc/skel/
.bash_logout
.bashrc
.face
.profile
原理:当你用 adduser 或 useradd 创建新用户时,系统会把 /etc/skel/ 里的所有文件复制到新用户的家目录。这就是为什么新用户会有默认的 .bashrc 等配置文件。
💡 延伸知识:如果你想让所有新用户都自带某些配置文件,就把文件放到
/etc/skel/里。
| 文件路径 | 作用 |
|---|---|
~/.config/user-dirs.dirs |
记录每个特殊目录的实际路径 |
~/.config/user-dirs.locale |
记录该用户上次使用的语言环境 |
~/.config/user-dirs.dirs 详解XDG_DESKTOP_DIR="$HOME/桌面"
XDG_DOWNLOAD_DIR="$HOME/下载"
XDG_TEMPLATES_DIR="$HOME/模板"
XDG_PUBLICSHARE_DIR="$HOME/公共"
XDG_DOCUMENTS_DIR="$HOME/文档"
XDG_MUSIC_DIR="$HOME/音乐"
XDG_PICTURES_DIR="$HOME/图片"
XDG_VIDEOS_DIR="$HOME/视频"
原理:这是 xdg-user-dirs-update 运行后生成的结果文件。桌面环境(如 GNOME 的文件管理器)会读取这个文件来知道"桌面"文件夹到底在哪里。
💡 XDG 是什么:XDG 是 freedesktop.org 制定的一组桌面系统标准规范,目的是让不同的 Linux 桌面环境能兼容。类似的还有
XDG_CONFIG_HOME(配置目录)、XDG_DATA_HOME(数据目录)等。
~/.config/user-dirs.locale 详解zh_CN
原理:这个文件只有一行,记录了上次运行翻译时使用的语言代码。当用户下次登录时,xdg-user-dirs-update 会检查这个文件:
zh_CN → 使用中文翻译en_US → 不翻译,保持英文💡 关键点:把这个文件改成
en_US或删除它,就能阻止系统把目录名翻译成中文。
Locale 是 Linux 系统中定义语言和区域设置的机制,包括:
$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
...
或者查看配置文件:
$ cat /etc/default/locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_ALL=zh_CN.UTF-8
| 变量 | 含义 |
|---|---|
LANG |
默认的语言环境 |
LANGUAGE |
程序界面语言的优先级列表 |
LC_ALL |
覆盖所有 LC_* 设置(优先级最高) |
LC_CTYPE |
字符分类和编码 |
LC_MESSAGES |
系统消息语言 |
⚠️ 关键理解:我们只需要把用户目录名改成英文,不需要修改系统的 Locale。
系统的zh_CN.UTF-8保持不变,中文输入法、中文字体、中文界面都不受影响。
编辑全局配置文件 /etc/xdg/user-dirs.conf:
sudo nano /etc/xdg/user-dirs.conf
将 enabled=True 改为 enabled=False:
# 修改前
enabled=True
# 修改后
enabled=False
原理:enabled=False 后,xdg-user-dirs-update 在用户登录时不会再自动翻译目录名。
此时它会直接使用 /etc/xdg/user-dirs.defaults 中定义的英文名称(Desktop、Downloads 等)。
效果:
~/.config/user-dirs.dirs 个人配置了)以下步骤针对每个已有用户分别执行。以
recode用户为例:
# 方法一:将语言改为英文
echo "en_US" > ~/.config/user-dirs.locale
# 方法二:直接删除这个文件(效果相同)
rm ~/.config/user-dirs.locale
原理:xdg-user-dirs-update 下次运行时,看到这个文件是 en_US(或文件不存在),就不会再把目录名翻译成中文了。
nano ~/.config/user-dirs.dirs
将所有中文路径替换为英文:
# 修改前
XDG_DESKTOP_DIR="$HOME/桌面"
XDG_DOWNLOAD_DIR="$HOME/下载"
XDG_TEMPLATES_DIR="$HOME/模板"
XDG_PUBLICSHARE_DIR="$HOME/公共"
XDG_DOCUMENTS_DIR="$HOME/文档"
XDG_MUSIC_DIR="$HOME/音乐"
XDG_PICTURES_DIR="$HOME/图片"
XDG_VIDEOS_DIR="$HOME/视频"
# 修改后
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/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
原理:桌面环境读取这个文件来定位用户的特殊目录。修改后,系统就会去寻找英文名称的文件夹。
cd ~
mv 桌面 Desktop
mv 下载 Downloads
mv 模板 Templates
mv 公共 Public
mv 文档 Documents
mv 音乐 Music
mv 图片 Pictures
mv 视频 Videos
原理解释 mv 命令:
mv 是 move(移动)的缩写mv 本质上是重命名,而不是复制+删除💡 验证一下:
mv 桌面 Desktop后,原来的桌面文件夹就不存在了,内容完全保留在Desktop中。
修改完成后,注销并重新登录(或者重启),让桌面环境重新读取配置文件。
重新登录后,立即检查桌面。你可能会遇到以下问题:
原因:某些桌面环境(如 XFCE)在 ~/Desktop/ 内部又自动创建了一个中文子文件夹,把原来的桌面文件都"包"在里面,而桌面环境只渲染 ~/Desktop/ 根目录,导致桌面看起来空白。
排查方法:
ls -la ~/Desktop/
如果你看到类似这样的结构:
Desktop/
├── 桌面/ ← 你的文件都在这里面
│ ├── 1111.txt
│ ├── firefox-esr.desktop
│ └── ...
└── .directory
修复方法:
# 1. 把文件移回 Desktop 根目录
cp ~/Desktop/桌面/* ~/Desktop/
cp ~/Desktop/桌面/.* ~/Desktop/ 2>/dev/null # 复制隐藏文件
# 2. 删除多余的中文子文件夹
rm -rf ~/Desktop/桌面
# 3. 如果用了 root 操作,修正文件所有者
sudo chown $USER:$USER ~/Desktop/* ~/Desktop/.* 2>/dev/null
原因:桌面上的 .desktop 快捷方式原本是符号链接(symlink),指向 /usr/share/applications/ 下的原始文件。如果操作过程中使用了 cp 复制,符号链接会被"解引用"变成普通文件,导致点击异常。
排查方法:
ls -la ~/Desktop/*.desktop
正常的符号链接应该是这样(带 -> 箭头):
lrwxrwxrwx 1 recode recode 38 4月 11 12:54 cursor.desktop -> /usr/share/applications/cursor.desktop
如果显示的是普通文件(没有 ->),则需要恢复为符号链接。
修复方法(以 firefox-esr.desktop 为例):
cd ~/Desktop
# 删除错误的普通文件
rm firefox-esr.desktop
# 重新创建符号链接
ln -s /usr/share/applications/firefox-esr.desktop firefox-esr.desktop
批量恢复所有快捷方式:
cd ~/Desktop
for f in *.desktop; do
target=$(grep -oP 'Exec=\K.*' "$f" 2>/dev/null || echo "")
# 更简单的方法:直接检查原链接是否存在
[ -f "/usr/share/applications/$f" ] && rm -f "$f" && ln -s "/usr/share/applications/$f" "$f"
done
原因:如果用 sudo 或 root 用户执行了 cp、mv 等操作,文件所有者会变成 root,导致桌面环境无法正确读取文件(图标显示为空白)。
排查方法:
ls -la ~/Desktop/
如果看到文件所有者是 root 而不是你的用户名:
修复方法:
# 把 $USER 替换为你的用户名
sudo chown $USER:$USER ~/Desktop/*
sudo chown $USER:$USER ~/Desktop/.* 2>/dev/null
💡 提示:重启桌面环境后如果图标仍不显示,可以尝试:
xfdesktop --reload # XFCE 桌面 # 或 killall plasmashell && plasmashell & # KDE 桌面
如果系统上还有其他用户,需要对每个用户重复第二步的操作。
可以用脚本批量处理(以用户名为 user2 为例):
# 切换到目标用户的家目录
cd /home/user2
# 修改配置
echo "en_US" > .config/user-dirs.locale
# 替换 user-dirs.dirs 中的中文路径为英文
sed -i 's|/桌面|/Desktop|g; s|/下载|/Downloads|g; s|/模板|/Templates|g; s|/公共|/Public|g; s|/文档|/Documents|g; s|/音乐|/Music|g; s|/图片|/Pictures|g; s|/视频|/Videos|g' .config/user-dirs.dirs
# 重命名文件夹
[ -d "桌面" ] && mv 桌面 Desktop
[ -d "下载" ] && mv 下载 Downloads
[ -d "模板" ] && mv 模板 Templates
[ -d "公共" ] && mv 公共 Public
[ -d "文档" ] && mv 文档 Documents
[ -d "音乐" ] && mv 音乐 Music
[ -d "图片" ] && mv 图片 Pictures
[ -d "视频" ] && mv 视频 Videos
# 修正文件所有者(因为是用 root 操作的)
chown user2:user2 .config/user-dirs.locale .config/user-dirs.dirs Desktop Downloads Templates Public Documents Music Pictures Videos
⚠️ 注意:如果用户当前正在登录,需要先注销他们,或者以 root 身份操作。
重新登录后,运行以下命令验证:
# 查看用户目录,应该看到英文名称
ls ~/
# 查看配置,路径应该是英文的
cat ~/.config/user-dirs.dirs
# 查看 locale,应该仍然是中文(这是正常的)
locale
此时:
原因 1:桌面文件夹从 ~/桌面 变成了 ~/Desktop,桌面上的图标和文件都在新位置里。
原因 2:某些桌面环境(如 XFCE)可能在 ~/Desktop/ 内部又创建了一个中文子文件夹,把文件"包"了进去。
解决:
~/Desktop/桌面/ 里:ls ~/Desktop/xfdesktop --reload按照文档 2.5 节 问题 B 的方法,恢复符号链接即可。
按照文档 2.5 节 问题 C 的方法,修正文件所有者即可。
不会。 中文输入法依赖的是 LANG=zh_CN.UTF-8 和输入法框架(如 fcitx、ibus),和目录名称无关。
能。 浏览器和其他软件通过读取 ~/.config/user-dirs.dirs 来定位下载目录,我们更新了这个文件里的路径,所以它们会正确地找到 ~/Downloads。
可以。 只需要修改 ~/.config/user-dirs.dirs 中对应的行,并且 mv 重命名对应的文件夹即可。不需要全部改。
以下发行版默认使用 xdg-user-dirs,本方案完全适用:
| 发行版家族 | 发行版 |
|---|---|
| Debian 系 | Debian、Ubuntu、Linux Mint、Pop!_OS、Deepin、UOS |
| Red Hat 系 | Fedora、RHEL、CentOS、Rocky Linux |
| Arch 系 | Arch Linux、Manjaro(安装了 xdg-user-dirs 时) |
| openSUSE | openSUSE Leap / Tumbleweed |
判断方法:
# 检查是否安装了 xdg-user-dirs
dpkg -l | grep xdg-user-dirs # Debian/Ubuntu
rpm -qa | grep xdg-user-dirs # Fedora/RHEL/openSUSE
pacman -Q | grep xdg-user-dirs # Arch/Manjaro
如果系统没有安装 xdg-user-dirs,那中文文件夹可能是以下原因产生的:
| 情况 | 说明 | 解决方案 |
|---|---|---|
| 桌面环境自带 | 某些桌面环境有自己的目录管理机制 | 查看对应桌面环境的文档 |
| 手动创建 | 用户自己创建了中文名的文件夹 | 直接 mv 重命名即可 |
| 其他工具 | 如 gtk 的一些工具 |
通常直接重命名文件夹即可 |
如果没装这个工具,反而更简单——直接重命名文件夹即可:
mv ~/桌面 ~/Desktop
mv ~/下载 ~/Downloads
# ... 其他同理
然后确保各软件的配置指向新路径即可。
完全相同。 Red Hat 系列发行版同样使用 xdg-user-dirs 来管理用户特殊目录,核心机制与 Debian 完全一致:
/etc/xdg/user-dirs.conf、~/.config/user-dirs.dirs/usr/share/xdg-user-dirs/<locale>.txtxdg-user-dirs-update 自动运行并翻译目录名所以前面的所有章节(原理、配置文件、操作步骤、问题排查)对 Red Hat 系列同样适用。
| 差异点 | Debian/Ubuntu | CentOS/RHEL/Fedora/Rocky |
|---|---|---|
| 包管理器 | apt / dpkg |
yum / dnf / rpm |
| 检查安装命令 | dpkg -l | grep xdg-user-dirs |
rpm -qa | grep xdg-user-dirs |
| 安装命令 | sudo apt install xdg-user-dirs |
sudo dnf install xdg-user-dirs(Fedora/Rocky 9+)sudo yum install xdg-user-dirs(CentOS 7/8) |
| Locale 配置文件 | /etc/default/locale |
/etc/locale.conf |
| 默认桌面环境 | GNOME / XFCE(因版本而异) | GNOME(默认)/ KDE / XFCE(可选) |
| 重启 GNOME 桌面命令 | gnome-shell --replace & |
killall -3 gnome-shell 或重新登录 |
💡 关键提示:
/etc/locale.conf是 Red Hat 系列的 Locale 配置文件(对应 Debian 的/etc/default/locale),但我们不需要修改它。
rpm -qa | grep xdg-user-dirs
如果没有任何输出,说明未安装:
# Fedora / Rocky Linux 9+
sudo dnf install xdg-user-dirs
# CentOS 7/8 / RHEL 7/8
sudo yum install xdg-user-dirs
# 1. 全局开关(影响新用户)
sudo nano /etc/xdg/user-dirs.conf
# 将 enabled=True 改为 enabled=False
# 2. 当前用户的语言设置
echo "en_US" > ~/.config/user-dirs.locale
# 3. 修改目录路径配置
nano ~/.config/user-dirs.dirs
# 将所有中文路径替换为英文(参见文档 2.2 节)
# 4. 重命名实际文件夹
cd ~
mv 桌面 Desktop
mv 下载 Downloads
mv 模板 Templates
mv 公共 Public
mv 文档 Documents
mv 音乐 Music
mv 图片 Pictures
mv 视频 Videos
CentOS/RHEL 默认使用 GNOME 桌面环境。GNOME 对 xdg-user-dirs 的依赖非常强,但它的桌面渲染方式与 XFCE 有所不同:
GNOME 桌面图标管理:
如果修改后桌面图标不显示,尝试:
# 方法 1:重启 GNOME Shell(按 Alt+F2,输入 r,回车)
# 这是 GNOME 的软重启,不会关闭已打开的程序
# 方法 2:如果命令行操作
killall -3 gnome-shell
# 或者
gnome-shell --replace &
GNOME 桌面图标扩展:
如果 GNOME 默认不显示桌面图标,可以安装扩展:
# Fedora
sudo dnf install gnome-extensions-app
# 然后启用 "Desktop Icons" 扩展
# 查看 GNOME 的 XDG 目录配置
cat ~/.config/user-dirs.dirs | grep DESKTOP
# 应该显示:XDG_DESKTOP_DIR="$HOME/Desktop"
CentOS 7 的最小安装可能不包含 xdg-user-dirs。如果 rpm -qa | grep xdg-user-dirs 没有输出:
情况 1:未安装,但文件夹仍然是中文的
这说明中文文件夹是安装桌面环境时手动创建的,或者其他工具生成的。此时直接 mv 重命名即可:
mv ~/桌面 ~/Desktop
mv ~/下载 ~/Downloads
# ... 其他同理
然后手动创建配置文件:
mkdir -p ~/.config
cat > ~/.config/user-dirs.dirs << 'EOF'
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/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
EOF
echo "en_US" > ~/.config/user-dirs.locale
情况 2:未安装,需要安装
sudo yum install xdg-user-dirs
安装后,可以手动运行一次来生成配置:
xdg-user-dirs-update
| 命令 | 作用 | 示例 |
|---|---|---|
locale |
查看当前语言环境 | locale |
cat /etc/default/locale |
查看系统默认 locale | cat /etc/default/locale |
mv 旧名 新名 |
重命名文件/目录 | mv 桌面 Desktop |
nano 文件 |
文本编辑器(命令行) | nano ~/.config/user-dirs.dirs |
sed -i 's/旧/新/g' 文件 |
批量替换文件内容 | sed -i 's/桌面/Desktop/g' ~/.config/user-dirs.dirs |
echo "内容" > 文件 |
写入内容到文件(覆盖) | echo "en_US" > ~/.config/user-dirs.locale |
ls ~/ |
列出家目录内容 | ls ~/ |
chown 用户:组 文件 |
修改文件所有者 | chown recode:recode ~/Desktop |
中文文件夹是
xdg-user-dirs-update在登录时自动"翻译"产生的。关闭翻译开关(enabled=False),修改个人配置,重命名文件夹,就能恢复英文名称,同时不影响系统的中文功能。
/etc/xdg/user-dirs.conf,设置 enabled=False(影响新用户)~/.config/user-dirs.locale 为 en_US~/.config/user-dirs.dirs 中的中文路径为英文mv 重命名实际的中文文件夹| 风险 | 等级 | 说明 |
|---|---|---|
| 脚本或配置中硬编码了中文路径 | 低 | 检查一下是否有 ~/桌面 这样的硬编码引用 |
| 桌面图标暂时消失 | 低 | 重新登录后可能出现,详见 2.5 节 |
| 快捷方式(符号链接)被破坏 | 低 | cp 操作会解引用符号链接,需注意保留 |
| 文件所有者变为 root | 低 | 使用 root 操作后需 chown 修正 |
| 系统中文功能受影响 | 无 | Locale 不变,中文输入/显示正常 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。