一个班轮重命名一堆文件

Jea*_*ean 11 linux rename file

我正在寻找一个linux命令行one-liner来一次性重命名一堆文件.

pattern1.a  pattern1.b pattern1.c ...
Run Code Online (Sandbox Code Playgroud)

一旦命令执行,我应该得到

pattern2.a  pattern2.b pattern2.c ...
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 13

for i in pattern1.*; do mv -- "$i" "${i/pattern1/pattern2}"; done
Run Code Online (Sandbox Code Playgroud)

在你运行它之前,先在它echo前面mv看看它做什么.


gho*_*oti 11

如果您碰巧使用的是Linux,那么您可能还在/ usr/bin/rename中有一个perl脚本,根据比shell globbing许可更复杂的模式重命名文件.

这里记录了我的一个系统上的/ usr/bin/rename .它可以像这样使用:

rename "s/pattern1/pattern2/" pattern1.*
Run Code Online (Sandbox Code Playgroud)

许多其他Linux环境似乎有不同的rename可能使用如下:

rename pattern1 pattern2 pattern1.*
Run Code Online (Sandbox Code Playgroud)

检查man rename系统以获取详细信息.

  • 为第二个重命名示例竖起大拇指;网上搜了下,没找到`"s/pattern1/pattern2/"`不工作的问题! (2认同)