특정 파일을 재귀적으로 찾고 파일 이름을 변경하려고 합니다.

특정 파일을 재귀적으로 찾고 파일 이름을 변경하려고 합니다.

모든 하위 폴더에서 파일 이름 안에 점이 있는 파일을 반복적으로 검색하고 점을 제거하려고 합니다(마지막 점 제외).

rename 명령은 자체적으로 작동하고 find 명령도 작동하지만 함께 작동하지는 않습니다.

find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;

답변1

명령 의 glob은 -execdir작동하지 않습니다. find원하는 파일을 검색하여 rename해당 파일에서만 실행하는 것이 좋습니다.

find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;

rename표현식이 경로에서 작동하지 않는 것으로 나타났습니다 . 대신 다음을 시도해 보십시오.

find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;

관련 정보