在银河麒麟v10中批量重命名文件需按需求选工具:改扩展名用for循环,删前缀/换空格用rename,跨目录则用find递归处理;各命令需严格遵循语法规范,如双引号保护空格、^锚定开头、路径转义等。

在银河麒麟V10系统中,需通过终端命令批量重命名文件时,必须根据具体需求选择对应工具:改扩展名用for循环最稳妥,删前缀/换空格用rename最精准,跨目录或带逻辑编号则需自定义脚本。
用for循环统一修改文件扩展名
第一步:按 Ctrl + Alt + E 打开终端,输入 cd /你的目标文件夹绝对路径 切换到存放文件的目录,比如 cd ~/Downloads/logs。
第二步:执行命令 for i in *.log; do mv "$i" "${i%.log}.txt"; done——这条命令会把当前目录所有 .log 文件改成 .txt,且保留原文件名主体。
第三步:运行 ls -1 *.txt 查看结果。如果列表为空,说明原目录根本没有 .log 文件,或者你输错了扩展名;双引号 "$i" 绝对不能省略,否则含空格的文件名会触发“no such file or directory”报错。
用rename命令做正则替换
方法一:先确认系统是否已安装 rename 工具——在终端输入 rename --version,若提示 “command not found”,就运行 sudo apt install rename 安装。
方法二:切换到目标目录后,执行空格替换命令:rename 's/ /_/g' *。它会把当前目录所有文件名里的空格全换成下划线,比如 “会议记录 2026.pdf” → “会议记录_2026.pdf”。
方法三:删除文件名开头的固定前缀,例如去掉每个 .pdf 文件名前的 “扫描件_”,运行:rename 's/^扫描件_//' *.pdf。^ 符号必须保留,它表示“开头”,漏掉就会全局替换,可能误删文件名中间的相同文字。
用find命令递归处理子目录文件
如果你的文件分散在多层子文件夹里,比如 ~/Documents/reports/2025/Q4/ 和 ~/Documents/reports/2026/Q1/,就不能只靠 * 匹配了。
执行这条命令:find ~/Documents/reports -type f -name "*.old" -exec bash -c 'mv "$1" "${1%.old}.new"' _ {} \;。
它会从 ~/Documents/reports 开始,逐层查找所有类型为文件(-type f)、名称匹配 *.old 的项,并将它们的扩展名统一改为 .new。注意:路径中不能有未转义的空格,否则 find 会截断路径。











