rename - 重命名多个文件
RENAME(1p) 用户贡献的 Perl 语言版本的文档 RENAME(1p)
名称
rename - 重命名多个文件
概要
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]
描述
"rename" 根据指定为第一个参数的规则重命名提供的文件名。
perlexpr 参数是一个 Perl 表达式,
它至少可以指定的文件名中的部分字符串。
如果给定的文件名未被表达式修改,则不会重命名。
如果命令行中未提供文件名,则将通过标准输入读取文件名。
,
例如,要重命名所有匹配 "*.bak" 的文件以去除后缀,你可以这样使用
rename 's/\e.bak$//' *.bak
译者注:这个命令再 WSL2 Ubuntu 18.04 LTS 下无效
可以使用这个命令 rename 's/\.bak//' *.bak。
s/regexp/replacement/
开头的 s 表示将 regexp 匹配到的内容 替换为 replacement。
将所有大写字母转化为小写字母,你可以这样使用
rename 'y/A-Z/a-z/' *
译者注:y/source/dest/
开头的 y 表示将 source 中匹配到的字符替换为 dest 中对应位置的字符。
选项
-v, -verbose
详细信息:成功重命名的文件的打印名称。
-n, -nono
不执行任何操作:打印要重命名的文件名,但不重命名。
-f, -force
覆盖:允许现有文件被覆盖。
-h, -help
帮助:打印概要和选项。
-m, -man
手册:打印手册页。
-V, -version
版本:显示版本号。
-e 表达式:作用于文件名的代码。
可以重复构建代码(例如“ perl -e”)。
如果没有使用 -e,则第一个参数将被视作代码。
译者注:这一段翻译起来不是很通顺,
下面是英文原文:
Expression: code to act on files name.
May be repeated to build up code (like "perl -e").
If no -e, the first argument is used as code.
-E 声明:作用于文件名的代码,为-e,但以';'结尾。
环境
没有使用环境变量。
作者
Larry Wall
参见
mv(1), perl(1)
诊断
If you give an invalid Perl expression you'll get a syntax error.
错误
原始的 "rename" 没有检查目标文件名是否存在,
因此必须谨慎使用。希望我已经解决了这个问题(Larry Wall)。
译者注:你不要吓我,Larry Wall。
下面是英文原文:
The original "rename" did not check for the existence of target filenames,
so had to be used with care.
I hope I've fixed that (Robin Barker).
译者
本手册由 ADD-SP 于 2020年8月24日 由英文翻译为简体中文。
perl v5.26.1 2018-02-19 RENAME(1p)