5

我想重命名包含子字符串“ foo”的所有文件,在给定文件夹中将其替换为“ bar”。我该怎么做?

更新:

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

作品!!!

4

1 回答 1

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 版本。如果它打印版本信息,它是另一个版本。

于 2013-02-21T10:00:53.393 回答