如何解决 mv cannot stat No such file or directory 错误

时间:2021-06-04 05:17:11

标签: bash

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

有人可以帮我补缺的部分吗?
感谢您的所有帮助!提前致谢!

1 个答案:

答案 0 :(得分:0)

您尝试在 glob 模式中使用 **。默认情况下,这是禁用的(您可以通过执行 shopt globstar 来检查它;在您的脚本中,它可能会响应 globstar off。您可以使用

打开它
shopt -s globstar