原文: Rename a File in Linux – Bash Terminal Command

无论你是使用命令行还是 GUI,重命名文件都是一个非常常见的操作。

与 GUI(即图形用户界面)相比,CLI 的功能特别强大。这部分是因为你可以批量重命名文件,甚至可以安排脚本在某个时间点重命名文件。

在本教程中,你将看到如何在 Linux 命令行中使用内置的 mv 命令重命名文件。

如何使用 Linux mv 命令

你可以使用内置的 Linux 命令 mv 来重命名文件。

mv 命令遵循以下语法:

mv [options] source_file destination_file

下面是一些可以在 mv 命令中派上用场的选项:

  • -v--verbose:解释正在做什么
  • -i--interactive:在重命名文件之前进行提示

比方说,你想把 index.html 重命名为 web_page.html,你可以这样使用 mv 命令:

zaira@Zaira:~/rename-files$ mv index.html web_page.html

让我们列出文件,看看文件是否被重命名了:

zaira@Zaira:~/rename-files$ ls
web_page.html

如何使用 mv 批量命名文件

让我们来讨论一个脚本,你可以使用循环和 mv 命令来批量重命名文件。

这里我们有一个扩展名为 .js 的文件列表。

zaira@Zaira:~/rename-files$ ls -lrt
total 0
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 index.js
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 config.js
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 blog.js

接下来,你要把它们转换为 .html

你可以使用下面的命令来重命名该文件夹中的所有文件:

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

让我们来分解这个长字符串,看看在后台发生了什么。

  • 第一部分 for f in *.js 告诉 for 循环要处理目录中的每个 “.js” 文件。
  • 下一部分 do mv -- "$f" "${f%.js}.html 规定了处理的内容。它是用 mv 来重命名每个文件。新文件将以原文件的名称命名,不包括 .js 部分。将附加一个新的扩展名 .html
  • 最后一部分 done 只是在所有文件都被处理后结束循环。
zaira@Zaira:~/rename-files$ ls -lrt
total 0
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 index.html
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 config.html
-rw-r--r-- 1 zaira zaira 0 Sep 30 00:24 blog.html

小结

正如你所看到的,使用 CLI 重命名文件是非常容易的。在脚本中部署时,它可以非常强大。

你在这里学到的最喜欢的东西是什么?请在 Twitter 上告诉我。

你可以在这里阅读我的其他文章。

图片来源:storyset on Freepik