在中文系统安装的 Ubuntu 中,默认用户目录会使用中文名(桌面、下载、文档等),在终端、开发工具、脚本中容易出现路径编码或显示问题。本文介绍如何将用户目录迁移为英文命名。

1、强制将系统配置改为英文

export LC_ALL=C
xdg-user-dirs-update --force

xdg-user-dirs-update 会根据 ~/.config/user-dirs.dirs 和语言环境更新用户目录。LC_ALL=C 临时切换为英文环境,使生成的目录名为 DesktopDownloads 等。

2、迁移脚本:中文目录 → 英文目录

以下脚本会将中文目录中的文件迁移到对应英文目录,并删除空的中文目录:

#!/bin/bash

# 1. 强制将系统文件夹路径配置改为英文
export LC_ALL=C
xdg-user-dirs-update --force

# 2. 定义映射关系并开始迁移
folders="桌面:Desktop 下载:Downloads 模板:Templates 公共:Public 文档:Documents 音乐:Music 图片:Pictures 视频:Videos"

for pair in $folders; do
    # 拆分中文名和英文名
    src=$(echo $pair | cut -d: -f1)
    dst=$(echo $pair | cut -d: -f2)
    
    # 如果旧的中文目录存在,且不是空的,就移动里面的内容
    if [ -d "$HOME/$src" ]; then
        echo "正在处理: $src -> $dst"
        # 确保英文目录已创建
        mkdir -p "$HOME/$dst"
        # 移动文件
        if [ "$(ls -A "$HOME/$src")" ]; then
            mv "$HOME/$src"/* "$HOME/$dst/" 2>/dev/null
        fi
        # 删除空的中文目录
        rmdir "$HOME/$src"
    fi
done

echo "迁移完成!"

3、映射关系说明

中文目录 英文目录
桌面 Desktop
下载 Downloads
模板 Templates
公共 Public
文档 Documents
音乐 Music
图片 Pictures
视频 Videos

4、使用前注意

  • 备份:建议先备份重要数据
  • 隐藏文件mv .../* 不包含以 . 开头的隐藏文件,如有需要请手动迁移
  • 软链接:若有指向中文路径的符号链接,迁移后需更新

5、迁移后验证

# 查看 user-dirs.dirs 配置
cat ~/.config/user-dirs.dirs

应看到类似 XDG_DESKTOP_DIR="$HOME/Desktop" 的英文路径配置。