You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubuntu 22.04下批量重命名含非拉丁字符文件至拉丁等效名的工具/脚本咨询

Kubuntu 22.04下批量重命名含非拉丁字符文件至拉丁等效名的工具/脚本咨询

嘿,这个需求在日常文件整理里挺常见的,在Kubuntu 22.04这类基于Debian的*buntu系统中,有几个靠谱的工具和脚本方案能帮你轻松搞定批量重命名的事儿:

1. 用convmv工具(最省心的专用工具)

这是专门处理文件名编码转换和字符转写的工具,安装和使用都很简单:

  • 先安装工具:
    sudo apt install convmv
    
  • 进入目标文件夹后,先执行预览命令(不会实际修改文件,先确认效果):
    convmv -f utf8 -t utf8 --nfc --translit --dry-run *
    
  • 如果预览结果符合预期,再执行实际重命名命令:
    convmv -f utf8 -t utf8 --nfc --translit --replace --remove-target *
    
    简单解释下关键参数:--translit就是负责把非拉丁带重音的字符转成对应的普通拉丁字符;--replace和--remove-target是处理可能的重名情况,确保重命名能顺利完成。

2. 用Python脚本(自定义性强)

如果需要更灵活的逻辑,比如只处理特定类型文件,写个小Python脚本就很方便:

import os
import unicodedata

def convert_to_latin(filename):
    # 把Unicode字符规范化,去掉重音等附加标记
    normalized = unicodedata.normalize('NFKD', filename)
    return ''.join([char for char in normalized if not unicodedata.combining(char)])

# 遍历当前文件夹下的所有文件
for file in os.listdir('.'):
    if os.path.isfile(file):
        new_name = convert_to_latin(file)
        if new_name != file:
            os.rename(file, new_name)
            print(f"已重命名: {file} -> {new_name}")
  • 把这段代码保存为rename_latinize.py,放到目标文件夹里;
  • 执行脚本:python3 rename_latinize.py
  • 建议先注释掉os.rename那行,只保留print,确认输出的新文件名没问题再实际执行重命名。

3. 用Perl版rename命令(系统自带,无需额外安装)

Kubuntu默认自带Perl版本的rename命令,直接就能用:

  • 先预览效果:
    rename -n 'use Unicode::Normalize; $_ = NFKD($_); s/\p{NonspacingMark}//g' *
    
  • 确认没问题后,去掉-n参数执行实际重命名:
    rename 'use Unicode::Normalize; $_ = NFKD($_); s/\p{NonspacingMark}//g' *
    
    这个命令的原理和Python脚本类似,通过Unicode规范化去掉字符上的重音标记,转成普通拉丁字符。

备注:内容来源于stack exchange,提问作者raphael75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:08:00