使用'bar'重命名包含子字符串'foo'的文件

时间:2013-02-21 09:57:25

标签: regex linux shell unix command-line

我想重命名包含子字符串“foo”的所有文件,将其替换为给定文件夹中的“bar”。如何实现此目标?

更新

for i in ./*foo*; do mv "$i" "${i//foo/bar}";done 

工作!!!

1 个答案:

答案 0 :(得分:3)

如果您拥有rename(1)附带的perl(Debian提供),您可以使用:

cd /path/to/directory
rename 's/foo/bar/g' *

如果您有另一个rename(1)(我在Red Hat Enterprise Linux和其他一些发行版中看到它,它来自util-linux),您可以尝试:

cd /path/to/directory
rename foo bar *foo*

您可以尝试rename来查看您拥有的rename -V版本。如果它不识别该标志,那就是perl版本。如果它打印版本信息,则是另一个版本。