웹사이트 검색

Linux에서 모든 파일 및 디렉터리 이름을 소문자로 바꿉니다.


이전 기사에서는 특정 디렉터리 내의 파일 및 하위 디렉터리 수를 계산하는 방법을 설명했습니다. 이 가이드에서는 Linux에서 모든 파일 및 디렉터리 이름을 소문자로 바꾸는 방법을 보여줍니다.

추가 읽기: Linux에서 상위 디렉터리 및 파일(디스크 공간)을 찾는 방법

이를 달성하는 방법에는 여러 가지가 있지만 가장 효율적이고 신뢰할 수 있는 두 가지 방법을 설명하겠습니다. 이 가이드에서는 다음과 같은 구조를 갖는 Files라는 디렉터리를 사용했습니다.

find Files -depth

1. find, xargs 및 rename 명령을 함께 사용

rename은 Linux에서 한 번에 여러 파일의 이름을 바꾸는 간단한 명령줄 유틸리티입니다. 찾기 유틸리티와 함께 사용하여 다음과 같이 특정 디렉터리의 모든 파일이나 하위 디렉터리의 이름을 소문자로 바꿀 수 있습니다.

find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

위 명령에 사용된 옵션에 대한 설명입니다.

  • -깊이 – 디렉터리 자체 앞에 각 디렉터리의 내용을 나열합니다.
  • -n 1find 출력에서 명령줄당 최대 하나의 인수를 사용하도록 xargs에 지시합니다.

Files 디렉터리에서 파일과 하위 디렉터리의 이름을 소문자로 바꾼 후의 샘플 출력입니다.

아래 설명된 대로 스크립트에서 find 및 mv 명령을 사용하는 또 다른 대체 방법입니다.

2. 쉘 스크립트에서 find 및 mv 명령 사용

먼저 스크립트를 만듭니다(원하는 이름으로 지정할 수 있습니다).

cd ~/bin
vi rename-files.sh

그런 다음 아래 코드를 추가하세요.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

파일을 저장하고 닫은 다음 스크립트를 실행 가능하게 만들고 실행합니다.

chmod +x rename-files.sh
rename-files.sh Files     #Specify Directory Name

다음 관련 기사를 읽고 싶을 수도 있습니다.

  1. Linux의 "모든 것은 파일이다" 및 파일 유형에 대한 설명
  2. fswatch – Linux에서 파일 및 디렉터리 변경 또는 수정 사항을 모니터링합니다.
  3. Fasd – 파일 및 디렉터리에 대한 빠른 액세스를 제공하는 명령줄 도구
  4. FSlint – Linux에서 중복 파일을 찾아 제거하는 방법

이 가이드에서는 Linux에서 모든 파일과 디렉터리의 이름을 소문자로 바꾸는 방법을 설명했습니다. 오류가 발생하면 아래 피드백 양식을 통해 문의해 주세요. 동일한 작업을 수행하는 다른 방법을 제공할 수도 있습니다.