我需要写一个 bash 脚本。我有一个名为 ABC 的主文件夹,该文件夹包含多个文件夹,每个文件夹都有多个文件。现在一些文件被命名为 _servicename_List.java 此处 _servicename_
充当占位符。我需要用一个字符串替换这个占位符 XYZ
我已经尝试了以下解决方案但是它不起作用
$Service_Name="XYZ"
cd ABC
for FileName in **/*; do
mv -- "$FileName" "${FileName/_servicename_/$Service_Name}"
done
我收到以下错误:
mv: cannot stat '**/*': No such file or directory
有人可以帮我补缺的部分吗?
感谢您的所有帮助!提前致谢!
答案 0 :(得分:0)
您尝试在 glob 模式中使用 **
。默认情况下,这是禁用的(您可以通过执行 shopt globstar
来检查它;在您的脚本中,它可能会响应 globstar off。您可以使用
shopt -s globstar