Linux中的重命名命令(重命名多个文件)

使用重命名多个文件和目录 mv 命令可能是一个乏味的过程,因为它涉及使用管道,循环等编写复杂的命令。

这是 rename 命令很方便。 通过使用名称替换指定名称的搜索表达式来重命名给定文件。

在本教程中,我们将说明如何使用 rename 命令以批量重命名文件。

正在安装 rename

有两个版本 rename 命令具有不同的语法和功能。 我们将使用Perl版本的 rename 命令。

如果您的系统上未安装此版本,请使用Linux发行版的软件包管理器进行安装:

  • Ubuntu和Debian

    sudo apt updatesudo apt install rename
  • CentOS和Fedora

    sudo yum install prename
  • Arch Linux

    yay perl-rename

使用 rename

以下是 rename 命令:

rename [OPTIONS] perlexpr files

rename 命令基本上是Perl脚本。 它将重命名给定 files 根据指定 perlexpr 正则表达式。 您可以在这里阅读有关Perl正则表达式的信息。

例如,以下命令将更改所有扩展名 .css 文件到 .scss

rename 's/.css/.scss/' *.css

让我们更详细地解释命令:

  • s/search_pattern/replacement/ -替换运算符。
  • .css -搜索模式。 它是替代运算符中的第一个参数。 的 rename 命令将在给定的文件名中搜索此模式,如果找到该模式,则将其替换为replace参数。
  • .scss -更换。 替换运算符中的第二个参数。
  • *.css -所有扩展名为“ .css”的文件。 通配符(*)是用于表示零个,一个或多个字符的符号。

在运行实际命令并重命名文件和目录之前,最好使用 -n 选项将执行“空运行”并向您显示将重命名哪些文件:

rename -n 's/.css/.scss/' *.css

输出将如下所示:

rename(file-0.css, file-0.scss)
rename(file-1.css, file-1.scss)
rename(file-2.css, file-2.scss)
rename(file-3.css, file-3.scss)
rename(file-4.css, file-4.scss)

默认情况下, rename 命令不会覆盖现有文件。 使用 -f 告诉的选项 rename 覆盖现有文件:

rename -f 's/.css/.scss/' *.css

如果你想 rename 要打印成功重命名的文件的名称,请使用 -v (详细)选项:

rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss
file-1.css renamed as file-1.scss
file-2.css renamed as file-2.scss
file-3.css renamed as file-3.scss
file-4.css renamed as file-4.scss

rename 例子 #

以下是一些有关如何使用重命名命令的常见示例:

用下划线替换文件名中的空格

rename 'y/ /_/' *

将文件名转换为小写#

rename 'y/A-Z/a-z/' *

将文件名转换为大写

rename 'y/a-z/A-Z/' *

去掉 .bak 从文件名

rename 's/.bak$//' *.bak

改名 .jpeg.JPG 文件名到 .jpg

rename 's/.jpe?g$/.jpg/i' *

结论#

rename 命令允许您使用Perl正则表达式一次重命名多个文件。

如果您有任何疑问或反馈,请随时发表评论。

重命名终端

Sidebar