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参数执行实际重命名:
这个命令的原理和Python脚本类似,通过Unicode规范化去掉字符上的重音标记,转成普通拉丁字符。rename 'use Unicode::Normalize; $_ = NFKD($_); s/\p{NonspacingMark}//g' *
备注:内容来源于stack exchange,提问作者raphael75
相关产品推荐
相关产品推荐

