在 Linux 命令行中一次重命名多个文件在 Linux 命令行中一次重命名多个文件在 Linux 命令行中一次重命名多个文件在 Linux 命令行中一次重命名多个文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 命令行中一次重命名多个文件

Linux 中的重命名命令可用于一次重命名多个文件。以下是一些可以使用重命名命令的实际场景。ufeff

我相信你已经知道如何在 Linux 中使用 mv 命令重命名文件了。您只需按以下格式使用它:

mv old_file_name new_file_name

相同的 mv 命令也用于重命名目录。这个方法没有什么问题。毕竟这是标准方式。

但是如果您必须重命名多个文件,该怎么办?一条一条地使用 mv 命令会花费大量时间,当然应该避免。

您可以使用 find exec 命令选项和 mv 命令来自动执行此过程。

但让我告诉您一种基于正则表达式模式重命名文件的更简单的方法。

Linux 中的重命名命令

有一个名为 rename 的命令行实用程序,它允许您重命名与 Perl 正则表达式形式的特定模式匹配的所有文件。重命名命令仅适用于文件名,不适用于文件本身。

重命名命令的语法如下:

rename [options] perlexpr [files]

此“重命名命令”具有以下选项:

  • -v:详细模式。

  • -n:不采取任何行动。显示要重命名的文件,但不重命名文件。

  • -o:不覆盖。不要覆盖现有文件。

  • -f:强制。覆盖现有文件。

  • -s :不重命名符号链接,而是重命名其目标

请注意,rename 命令不是像 mv 或 cp 命令那样预装在 Linux 发行版上的标准实用程序。您可能需要安装它。如果您是 Ubuntu 或 Debian 中的 sudo 用户,可以使用以下命令安装 rename:

sudo apt install rename

现在您一定想知道如何使用 rename 命令重命名文件。让我展示两个实际场景,其中该命令将为您节省大量时间。

场景1:将Linux中所有文件名中的一个字符替换为另一个字符

想象一下,如果多个文件名中有空格。在 Linux 中处理文件名中的空格是一场噩梦。这就是为什么没有经验丰富的用户会命名带有空格的文件。

当然,您需要删除空格并用下划线 (_) 替换它们。重命名命令在这里会非常方便。让我们看看如何。

要将当前目录下所有文件名中的空格替换为下划线,只需使用 renam 命令即可:

rename 's/ /_/g' *

如果您对正则表达式非常熟悉,您就会明白 s/ /_/g 正在搜索空格并将所有出现的空格替换为 _。

有趣的部分是星号(*)。星号告诉您重命名当前目录中的匹配文件。

但是,如果您还想重命名子目录中的所有匹配文件怎么办?在这种情况下,您可以使用两个星号,如下所示:

rename 's/ /_/g' **

场景 2:在 Linux 中一次更改多个文件的扩展名

这是为您准备的另一种情况。您有多个名称类似于 my_file.xyz 的文件,并且您想要重命名这些文件,以便它们成为类似于 my_file.abc 的文件。

要一次更改多个文件的扩展名,可以按以下方式使用重命名命令:

rename 's/\.xyz$/.abc/' **

让我向您解释一下上面的命令。

‘s/\.xyz$/.abc/’ :这是一个正则表达式,意味着用 .abc 替换行尾的 .xyz 字符。附加的\用于转义 .否则,将匹配 xyz 之前的任何字符。

** 表示查看当前目录及其子目录。

您喜欢重命名命令吗?

没有多少人知道重命名命令。这也可能是因为 rename 在许多 Linux 系统上并不是事实上的命令。

然而,我发现这个命令在同时处理多个文件的重命名时非常方便。

你呢?您过去使用过重命名命令吗?您更喜欢如何一次重命名多个文件?

©2015-2025 艾丽卡 support@alaica.com