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

时间:2020-03-05 15:29:17  来源:igfitidea点击:

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

这是“重命名”命令派上用场的地方。
它通过使用指定的替换名替换其名称中的搜索表达式来重命名给定的文件。

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

安装“rename”

“ rename”命令有两种版本,它们具有不同的语法和功能。
我们将使用Perl版本的“重命名”命令。

如果系统上未安装此版本,请使用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脚本。
它将根据指定的“ perlexpr”正则表达式重命名给定的“文件”。
我们可以在这里阅读有关Perl正则表达式的信息。

例如,以下命令会将所有“ .css”文件的扩展名更改为“ .scss”:

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

让我们更详细地说明命令:

  • 's/search_pattern/replacement /'-替换运算符。
  • '.css'-搜索模式。它是替代运算符中的第一个参数。 “重命名”命令将在给定的文件名中搜索该模式,如果找到该模式,则将其替换为替换参数。
  • '.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)

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

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

如果要“重命名”打印成功重命名的文件的名称,请使用“ -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' *