bash 脚本将单词附加到文件名

vic*_*maj 3 bash filenames

我正在尝试将单词“dicom”附加到一组文件夹中的许多文件名的前面。这些文件夹均以“s”开头(在下面的脚本中由“s*”引用),每个文件夹都包含许多文件(由下面的“*”指定)——我希望使用此命令更改所有这些文件bash 脚本。我尝试运行这个:

for file in /Volumes/USB_AIB/DICOMFunCurrentBatch/MOVr1unzip/s*/*
  do
  mv $file dicom${file%%}
done
Run Code Online (Sandbox Code Playgroud)

但出现了数千行以下错误(每个文件夹中的每个文件一次 - 这只是其中之一的示例):

mv: rename /Volumes/USB_AIB/DICOMFunCurrentBatch/MOVr1unzip/s307_1/29217684 to dicom/Volumes/USB_AIB/DICOMFunCurrentBatch/MOVr1unzip/s307_1/29217684: No such file or directory
Run Code Online (Sandbox Code Playgroud)

关于如何修复它有什么想法吗?

CS *_*Pei 5

我没有有效的路径dicom/Volumes/USB_AIB/DICOMFunCurrentBatch/MOVr1unzip/s307_1/,为什么要dicom在开头添加?

也许您想附加到?dicom的末尾$file

mv "$file" "${file}_dicom"
Run Code Online (Sandbox Code Playgroud)

或类似的东西。