使用mv
命令重命名多个文件和目录可能是一个乏味的过程,因为它涉及使用管道,循环等编写复杂的命令。
这就是rename
命令派上用场的地方。它通过指定名称与搜索表达式来批量重命名指定的文件。
rename
命令的两个版本,具有不同的语法和功能。我们将使用rename
命令的Perl版本。
安装 rename
如果你的系统未安装rename,命令将显示rename: command not found,rename命令未找到。您可以使用发行版的软件包管理器轻松安装rename。
如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt update && sudo apt install rename
安装rename。
如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo dnf install prename
安装prename。
sudo apt update
sudo apt install rename
sudo yum install prename
rename命令选项
rename
命令的语法形式是rename [OPTIONS] perlexpr files
。perlexpr
是perl正则表达式。files
是文件。
rename
命令其实是Perl脚本。它将根据指定的正则表达式重命名指定的。您可以在此处阅读Perl正则表达式的更多信息。
例如命令rename 's/.css/.scss/' *.css
会将所有.css
文件的扩展名更改为.scss
。
rename 's/.css/.scss/' *.css
让我们更详细地说明命令,rename命令可以映射成,s/
你的搜索模式/
指定你的替换值/
要替换的模式。
.css
是perl的正则表达式。它是替换运算符s/
中的第一个参数。 rename
命令将在指定的文件名中搜索此模式,如果找到,它将用第二个参数替换。
.scss
表示替换参数。替换运算符s/
中的第二个参数。
*.css
表示所有扩展名为.css
的文件。通配符*
是用于表示零个,一个或多个字符的符号。
在运行rename命令并重命名文件或者目录之前,最好使用-n
选项执行空运行,reanme将会向您打印将重命名的文件。
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
打印已成功重命名的文件名称,请使用-v
选项。
rename -f 's/.css/.scss/' *.css
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正则表达式一次重命名多个文件和目录。如果您有任何问题或反馈,请随时发表评论。