특정 패턴으로 시작하는 파일에 디렉터리 이름을 접두사로 추가하는 방법은 무엇입니까?

특정 패턴으로 시작하는 파일에 디렉터리 이름을 접두사로 추가하는 방법은 무엇입니까?

서로 다른 이름을 가진 1000개의 디렉터리가 있지만 이 모든 디렉터리의 파일에는 tran-20.ft, tran-30.ft, tran-40.ft, , 로 tran-50.ft시작하는 파일이 있습니다 tran-60.ft.

디렉토리 구조

dir1 ---tran-20.ft
  :     tran-30.ft
  :     tran-40.ft
  :     tran-50.ft
  :     tran-60.ft
  :
dir1000

예상 출력

dir1 --- dir1_tran-20.ft
         dir1_tran-30.ft
         dir1_tran-40.ft
         dir1_tran-50.ft
         dir1_tran-60.ft

특정 file() 의 접두어로 디렉토리 이름만 추가하고 싶나요 tran*? 어떻게 해야 하나요?

답변1

이렇게 매개변수 확장:

for f in */tran-*.ft; do
    echo mv "$f" "${f%%/*}/${f%%/*}_${f##*/}"
done

echo출력이 충분히 좋아 보이면 제거하십시오.


아니면 이렇게진주의rename:

rename -n 's!^([^/]+)/(tran-\d+\.ft)!$1/${1}_$2!' */tran-*.ft

-n출력이 충분히 좋아지면 스위치를 제거하십시오.

관련 정보