다른 많은 파일이 있는 폴더가 있는데 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%\/*}}"' {} \;