폴더의 모든 파일을 소문자에서 대문자로 변환/"번역"하고 싶습니다. for
루프를 사용하여 이 작업을 수행 할 수 있습니다 .
for i in ./* ; do mv $i $(echo $i | tr "a-z" "A-Z") ; done
for i in `find . -maxdepth 1 -mindepth 1` ; do mv $i $(echo $i | tr "a-z" "A-Z") ; done
tr
하지만 다음 범위에서는 왜 작동하지 않는지 알고 싶습니다 find
.
find . -maxdepth 1 -type f -exec mv {} $(echo {} | tr "a-z" "A-Z") \;
파일 이름을 다시 인쇄하고 대문자로 변경합니다. find
버전이 작동하지 않는 이유는 무엇 입니까?
내 목표는 루프 find
보다는 사용하는 것입니다 for
.
답변1
대신 사용하십시오 rename
:
find . -maxdepth 1 -type f -exec rename 'y/a-z/A-Z/' {} +
{}
서브셸에서는 확장 되지 않습니다 .