使用bash替换目录中的文件名
我正在编写一个bash脚本,用于将一个现有目录复制到另一个目录中,然后修改包含旧目录名称的所有文件名,并将其替换为新目录的名称 我正在使用这个命令,它工作正常使用bash替换目录中的文件名,bash,shell,Bash,Shell,我正在编写一个bash脚本,用于将一个现有目录复制到另一个目录中,然后修改包含旧目录名称的所有文件名,并将其替换为新目录的名称 我正在使用这个命令,它工作正常 find . -depth -name '*foo*' -execdir bash -c 'for f; do mv -i "$f" "${f//foo/bar}"; done' bash {} + 但是,由于我必须对多个目标目录执行此操作,我希望上述命令中的“bar”字符串包含在一个变量中,这样我就可以在循环中更改变量的内容(迭代数组
find . -depth -name '*foo*' -execdir bash -c 'for f; do mv -i "$f" "${f//foo/bar}"; done' bash {} +
但是,由于我必须对多个目标目录执行此操作,我希望上述命令中的“bar”字符串包含在一个变量中,这样我就可以在循环中更改变量的内容(迭代数组),并在批处理中复制和替换这些文件
我应该对命令做哪些更改?我试过以下方法,但不起作用
app="Workflow2";
strChange="f//Workflow1/"${app};
find . -depth -name '*Workflow1*' -execdir bash -c 'for f; do mv -i "$f" "${strChange}"; done' bash {} +
必须按照以下方式修改该命令
$(find . -depth -name '*Workflow1*' -execdir bash -c 'for f; do mv -i "$f" "${'${strChange}'}"; done' bash {} +)