확장자에 따라 파일 이름을 소문자로 변환하는 스크립트

확장자에 따라 파일 이름을 소문자로 변환하는 스크립트

확장자에 따라 파일 이름을 소문자로 변환하는 스크립트

답변1

여러 확장에 대해 이 작업을 반복적으로 수행하려면 zsh의 zmv를 사용할 수 있습니다.

zsh -c '
   autoload zmv
   ext=(jpg mp3 ogg)
   zmv -n "(**/)(*.(#i)(${(j:|:)ext}))" "\$1\${(L)2}"'

( 만족스러우면 삭제 -n( 또는 교체 )).-v

위의 명령은 대소문자를 구분하지 않는 와일드카드를 활성화하고 목록의 요소를 (#i)결합하는 데 사용됩니다 . ${(j:|:)ext}다음과 같이 직접 작성할 수도 있습니다.$ext|

zsh -c '
   autoload zmv
   zmv -n "(**/)(*.(#i)(ogg|jpg|mp3))" "\$1\${(L)2}"'

답변2

귀하의 질문이 코드와 어떻게 연결되는지 잘 모르겠으므로 이에 집중하겠습니다.

bash버전 4 이상 에서는 다음과 같은 방법을 사용하여 이 작업을 수행할 수 있습니다.

for file in ./*.JPG; do     # Iterate over all items in the current directory that match *.JPG
    mv "$file" "${file,,}"  # Move the file found to a lowercase mapping (this is what the ,, parameter expansion method does)
done

분명히 *.JPG원하는 것과 동등한 확장으로 바꾸십시오.

관련 정보