폴더에서 확장명을 제거하거나 이름을 바꾸는 방법

폴더에서 확장명을 제거하거나 이름을 바꾸는 방법

다음과 같은 폴더가 여러 개 있습니다.[이메일 보호됨],[이메일 보호됨],[이메일 보호됨]. 이름을 name1, name2, name3 등으로 바꾸고 싶습니다. 그 반대의 경우 name1, name2, name3인 경우 다음으로 이동할 수 있다는 것을 알았습니다.[이메일 보호됨]실행하여

find . -type d -name "*" -depth 1 | while read d; do  mv "$d" "[email protected]"; done

그런데 어떻게 그 반대로 할 수 있나요?[이메일 보호됨]==> 이름 1

답변1

Bash와 같은 셸을 사용합니다.

for d in ./*@*/; do mv "$d" "${d%@*}"; done

for d in ./*@*/이름에 "@"이 포함된 현재 디렉터리의 모든 디렉터리를 반복합니다. ${d%@*}변수의 값에서 d마지막 "@"과 그 뒤에 오는 모든 값을 뺀 값을 제공하는 매개변수 확장입니다.

좀 더 엄격하게 만들 수도 있고,예를 들어

for d in ./*@domain.com/; do mv "$d" "${d%@*}"; done

관련 정보