如何在 Mac OS 中通过命令行更改文件的文件扩展名

您可以通过终端轻松更改目录中的所有文件扩展名在 macOS 中

命令行用户可能会发现更改和重命名目录中一组文件的文件扩展名很有帮助。例如,假设您有一批文件扩展名为“.txt”的文件,但您希望所有这些文件扩展名为“.py”。这就是我们将在这里通过依靠简单的 bash 脚本在 Mac OS / OS X 的命令行更改一组文件扩展名来演示的内容,但这也适用于 linux 和其他 unix 风格。

开始之前,请意识到这不是在更改文件类型,只是在更改文件扩展名。此外,此演练方法有意使用命令行,因此适用于更高级的用户。但是,终端并不是执行此操作的唯一方法,因此如果这太高级或与您的用户技能不相关,请回想一下 Mac OS 为两者提供了简单的工具 在 Mac OS 中批量重命名文件批量更改文件扩展名也在 Finder 中,两者都不需要命令行。好的?好的,使用一个简单的单行 bash 脚本的命令行方法。

顺便说一句,您应该始终对正在修改的文件进行复制和/或备份,尤其是当您不熟悉命令行时。如果不这样做可能会导致数据丢失,终端不会容忍错别字或错误,所以不要跳过备份。

如何通过命令行更改目录中的所有文件扩展名

让我们举几个例子。在第一个示例中,我们将更改当前工作目录中扩展名为“.txt”的所有文件,并将它们更改为“.py”。假设您所在的目录中您希望将当前目录中的所有文件更改为新的文件扩展名,这里是要使用的语法:

用于 *.txt 中的文件;做 mv "$file" "${file%.txt}.py"完成

注意这里使用通配符 * 表示当前目录中与“*.txt”文件扩展名匹配的所有内容都将被更改。另请注意“txt”的多个实例和“py”的一个实例,您希望更改它们以满足您的要求。

这一切所做的就是创建一个简单的循环,在其中找到与通配符和初始文件扩展名匹配的文件,然后执行“mv”命令将这些文件从初始文件扩展名移动(重命名)到替换文件。很简单,对吧?

再举一个例子,假设我们在当前目录中有一组图像文件,文件名类似于“blahblah.jpg.JPEG”,但我们真的只是希望它们都具有相同的文件名更容易阅读“blazblah.jpeg”。在这种情况下,语法如下所示:

用于 *.jpg.JPEG 格式的文件;做 mv "$file" "${file%.jpg.JPEG}.jpeg"完成

更改文件扩展名的命令行方法非常快,文件扩展名将快速更改,没有警告对话框或确认。

再次重申,这不是转换任何文件类型或更改任何文件扩展名。

知道通过命令行更改目录中文件的一堆文件扩展名的更好方法吗?只是想浏览一些其他很棒的命令行提示(转到此处)?在评论中让我们知道您的想法!