我有名为 的文件夹ACB*
,其中有许多其他文件,其中有几个文件名为scanAC_*
我想删除调用的部分scanAC
并将其替换为它所在的目录名称。
例如,目录ACB_200315
包含文件scanAC_typefile_2S.dcm
,我希望最后一个文件成为ACB_200315_typefile_2S.dcm
我现在尝试过的(Linux、SSH、重命名选项不可用)但不起作用:
for i in ACB*; do
cd ${i}
mv scanID* ${i/scanID/${PWD##*/}};
cd ..
done
答案1
使用以下脚本使其工作,改编了 Costas 提供的一开始不起作用的脚本:
for d in ACB*; do
cd ${d}
for f in scanID*; do
mv "${f}" "${d}${f#scanID}"
done
cd ..
done
答案2
对于“几个文件”脚本必须稍作修改
for d in ACB* ; do
for f in ${d}/scanID* ; do
mv "${f}" "${f/scanID/${d}}"
#mv "${f}" "${d}/${d}${f#*scanID}"
done
done
或者使用寻找反而
find ACB* -name 'scanID*' -exec bash -c 'mv "$0" ""${0/scanID/${0%\/*}}"' {} \;