[shell] 디렉토리 이름에 대소문자 변환하기

1. rename 명령어 사용

rename 명령어는 파일이나 디렉토리의 이름을 일괄적으로 변경하는 데 사용됩니다. 아래 예제는 현재 디렉토리의 모든 파일과 디렉토리 이름을 대문자로 변경하는 예제입니다.

$ rename 'y/a-z/A-Z/' *

위 명령어의 rename 옵션은 첫 번째 인자로 주어진 문자열 패턴을 두 번째 인자의 문자열로 변환합니다. 예제에서는 [a-z] 범위의 소문자를 [A-Z] 범위의 대문자로 변경하고 있습니다.

2. findmv 명령어 조합

또 다른 방법은 find 명령어를 사용하여 디렉토리의 이름을 찾고, mv 명령어를 사용하여 이름을 변경하는 것입니다. 아래 명령어는 현재 디렉토리에서 소문자로 된 디렉토리 이름을 대문자로 변경하는 예제입니다.

$ find . -depth -type d -name '[a-z]*' -execdir bash -c 'mv -T -- "$0" "${0^^}"' {} \;

위 명령어는 find 명령어를 사용하여 현재 디렉토리에서 소문자로 시작하는 디렉토리를 찾고, mv 명령어를 사용하여 이름을 변경합니다. ${0^^}는 디렉토리 이름을 대문자로 변경합니다.

위의 두 가지 방법을 통해 파일 시스템에서 대소문자를 일괄적으로 변환할 수 있습니다. 주의사항으로 디렉토리 이름이 중복되지 않도록 변경하는 것을 잊지 마세요.