·4分钟阅读

如何在 Mac 上批量修改文件扩展名

错误的文件扩展名会打断工作流程、让应用无所适从,还会导致文件用错误的程序打开。一个一个修改十分繁琐,而在 Terminal 里操作又因为没有预览而存在出错风险。

开发者导出了 200 个 HTML 文件,扩展名却是 .txt。摄影师收到的 RAW 文件被存成了 .jpg。某个数据管道输出的 CSV 文件干脆没有扩展名。内容本身没问题——扩展名错了。而扩展名一旦出错,文件就会用错误的应用打开、在搜索中被过滤掉,或者打断某个自动化流程。

你需要修改所有这些文件的扩展名。不是一个一个来。而是一次性全部搞定。

Finder 方案

严格来说,Finder 可以修改扩展名——但一次只能改一个文件。右键点击,"显示简介",在名称字段里修改扩展名,再确认那个提示你"更改扩展名"的对话框。面对 200 个文件,这要耗费大量荒唐的时间。

Finder 的批量重命名可以做文本替换,所以理论上你可以把".txt"替换成".html"——但这种做法很脆弱。如果某个文件名里其他地方也出现了".txt"(比如"notes_txt_backup.txt"),替换就会命中错误的位置。Finder 分不清"扩展名"和"恰好匹配的文本"。

Terminal 方案

一条简单的 bash 命令可以搞定这件事:

for f in *.txt; do mv "$f" "${f%.txt}.html"; done

快速有效——但没有预览,没有撤销,命令里出一个错误就意味着 200 个文件名全部损坏。如果你忘了加引号,而文件名里又带空格,结果就无法预测。

带预览的批量扩展名修改

Renym 把扩展名修改作为重命名流水线的一部分来处理。你可以专门针对扩展名进行操作,而不影响文件名的其他部分。

Renym changing file extensions in batch on macOS

安全地替换扩展名

用锚定在名称末尾的正则表达式做查找替换,只修改扩展名,不匹配文件名本身的文本。在你应用之前,预览会准确显示每个文件将发生的变化。

补上缺失的扩展名

文件没有扩展名?追加".csv"、".json",或者任何正确的扩展名。插入操作会把文本添加在文件名末尾,也就是最后一个字符之后。

和其他清理操作组合

扩展名问题往往伴随着其他命名问题。在同一条流水线里修复扩展名,同时整理文件名——去掉前缀、统一大小写、添加编号——一次性全部完成。

需要时可以撤销

改了 200 个扩展名,结果发现改错了?撤销整个批次。修正流水线,再次应用。不需要手动把 200 个文件的扩展名改回原样。

在 Mac App Store 获取 Renym

下一篇文章

Renym

Rename hundreds of files with visual pipelines — regex, numbering, case changes.

Get Renym on the Mac App Store