我希望能够重命名给定文件夹中包含子字符串“
更新:
foo
”的所有文件,并将其替换为“bar
”。我应该如何完成此操作?更新:
for i in ./*foo*; do mv "$i" "${i//foo/bar}";done
运行成功!
foo
”的所有文件,并将其替换为“bar
”。我应该如何完成此操作?for i in ./*foo*; do mv "$i" "${i//foo/bar}";done
运行成功!
如果你有随同perl
一起提供的rename(1)
(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 -V
来检查您拥有哪个版本的rename
。如果它无法识别该标志,则是perl版本。如果它打印版本信息,则是其他版本。
for i in ./*foo*; do mv "$i" "${i//foo/bar}";done
的东西,但不确定它是否有效。 - Chirag Rupanifor f in *foo*; do echo mv "${i}" "${i//foo/bar}"; done
来查看它将要执行的操作。如果要真正执行,请删除echo
。 - cha0site