在Unix中基于模式重命名多个文件

在Unix中基于模式重命名多个文件

目录中有多个以前缀开头的文件。fgh,例如:

fghfilea
fghfileb
fghfilec

我想重命名所有的名字,以前缀开头。jkl..是否有一个命令来执行此操作,而不是单独重命名每个文件?


湖上湖
浏览 592回答 3
3回答

慕桂英4014372

有几种方法,但使用rename可能是最简单的。使用一个版本的rename:rename 's/^fgh/jkl/' fgh*使用另一个版本的rename(与Judy2K的答案):rename fgh jkl fgh*您应该检查您的平台的手册页,以查看上述哪一个应用程序。

慕哥9229398

这就是为什么sed和mv可以一起用于重命名:for f in fgh*; do mv "$f" $(echo "$f" | sed 's/^fgh/jkl/g'); done如下所示,如果文件名中有空格,则引号可能需要环抱返回要将文件移动到以下位置的名称的子函数:for f in fgh*; do mv "$f" "$(echo $f | sed 's/^fgh/jkl/g')"; done
打开App,查看更多内容
随时随地看视频慕课网APP