【发布时间】:2022-01-09 16:34:06
【问题描述】:
如何让这个命令在子目录中也执行?
for filename in *foo*; do mv "$filename" "${filename//foo/bar}"; done
【问题讨论】:
-
您是否尝试过使用 globstar 模式
**递归到子目录,如下所示:**/*foo*?您可能必须先启用此功能,然后才能使用它:shopt -s globstar。 -
将
globstar选项设置为shopt -s globstar,然后将*foo*替换为**/*foo*。 -
但请注意,您应该检查这是否符合您的预期,例如通过在
mv之前放置一个echo。 -
就像 Xoozee 说的,或者至少做一个
mv -iv ....。