여러 파일의 이름을 한 번에 바꾸세요. 이 명령에 어떤 문제가 있나요? [복사]

여러 파일의 이름을 한 번에 바꾸세요. 이 명령에 어떤 문제가 있나요? [복사]

내 디렉터리에 여러 파일이 있습니다.

$ ls -1
04PD.001
04PD.002
04PD.003
04PD.004
04PD.005

이제 각 파일의 이름을 다음과 같이 변경하고 싶습니다.04PD.7z.0*

누구든지 이 명령에 어떤 문제가 있는지 말해 줄 수 있습니까?

$ find 04PD* -type f -print -exec mv \{\} `echo \{\} | sed "s/04PD\.0/04PD\.7z\.0/"` \;

결과는 매우 이상합니다.

$ find 04PD* -type f -print -exec mv \{\} `echo \{\} | sed "s/04PD\.0/04PD\.7z\.0/"` \;
04PD.001
mv: '04PD.001' and '04PD.001' are the same file
04PD.002
mv: '04PD.002' and '04PD.002' are the same file
04PD.003
mv: '04PD.003' and '04PD.003' are the same file
04PD.004
mv: '04PD.004' and '04PD.004' are the same file
04PD.005
mv: '04PD.005' and '04PD.005' are the same file

명령을 테스트하기 위해 명령을 간단한 에코로 변경했습니다.

$ find Pop*04PD* -type f -print -exec echo mv \{\} `echo \{\} | sed "s/04PD\.0/04PD\.7z\.0/"` \;
04PD.001
mv 04PD.001 04PD.001
04PD.002
mv 04PD.002 04PD.002
04PD.003
mv 04PD.003 04PD.003
04PD.004
mv 04PD.004 04PD.004
04PD.005
mv 04PD.005 04PD.005

참고: 루프를 사용하여 아주 훌륭하고 간단한 해결책을 이미 찾았으므로 다른 해결책을 찾기보다는 이 명령의 문제에 집중하시기 바랍니다.

어디에서 오류가 발생하는지 궁금합니다.

관련 정보