如何解决mv无法stat没有这样的文件或目录错误



我需要编写一个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

最新更新