我需要编写一个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
有人能帮我补漏的部分吗
感谢您的帮助!提前感谢!
您尝试在glob模式中使用**
。默认情况下,这是禁用的(您可以通过执行shopt globstar
来检查它;在您的脚本中,它可能会以globstar关闭来响应。您可以使用打开它
shopt -s globstar