디렉터리 이름에서 문자열 찾기 및 바꾸기

디렉터리 이름에서 문자열 찾기 및 바꾸기

복원해야 하는 파일 구조가 있는데 이름에 :2f가 있습니다.

예를 들어 디렉토리 이름anyname:2fmorename

모든 디렉토리와 하위 디렉토리에서 으로 변경할 수 있기를 원합니다 :2f._

나는 다음과 같은 것을 원한다

find . -name *:2f* -type d -execdir mv{} *_* \;

하지만 확신할 수는 없습니다.

답변1

Perl이 설치되어 있으면 rename다음을 수행할 수 있습니다.

find . -name '*:2f*' -type d -exec rename 's/:2f/_/g' {} \;

만약 너라면먼저 테스트해보고 싶다그런 다음 다음을 추가하십시오 echo.

find . -name '*:2f*' -type d -exec echo rename 's/:2f/_/g' {} \;

답변2

감사합니다. 결국 다음을 사용하여 작동하게 되었습니다.

find /path -depth -type d -name '*:2f*' -execdir bash -c 'mv -v "$1" "${1//:2f/_}"' _ {} \;

관련 정보