확장자에 따라 파일 이름을 소문자로 변환하는 스크립트
답변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
원하는 것과 동등한 확장으로 바꾸십시오.