SW/리눅스

Linux : 파일, 디렉토리 이름 변경 방법, 예제, 명령어

얇은생각 2021. 4. 14. 07:30
반응형

파일 이름을 바꾸는 것은 Linux 시스템에서 수행해야 하는 가장 기본적인 작업 중 하나입니다. GUI 파일 관리자 또는 명령줄 터미널을 사용하여 파일 이름을 변경할 수 있습니다.

단일 파일의 이름을 바꾸는 것은 쉽지만, 특히 Linux를 처음 사용하는 사용자에게 여러 파일의 이름을 한 번에 바꾸는 것은 어려울 수 있습니다.

mv 및 이름 바꾸기 명령을 사용하여 파일 및 디렉토리 이름을 변경하는 방법을 보여드리겠습니다.

 

 

Linux : 파일, 디렉토리 이름 변경 방법, 예제, 명령어

 

 

mv 명령을 사용하여 파일 이름을 변경

mv 명령(이동 바로 가기)은 파일의 이름을 바꾸거나 한 위치에서 다른 위치로 이동하는 데 사용됩니다. mv 명령의 구문은 다음과 같습니다.

mv [OPTIONS] source destination

 

 

원본은 하나 이상의 파일일 수 있고, 디렉토리와 대상은 단일 파일 또는 디렉토리일 수 있습니다.

여러 파일을 소스로 지정할 경우 대상은 디렉토리여야 합니다. 이 경우 원본 파일이 대상 디렉토리로 이동됩니다.

단일 파일을 소스로 지정하고 대상 대상이 기존 디렉토리인 경우 파일은 지정된 디렉토리로 이동합니다.

파일 이름을 변경하려면 단일 파일을 소스로 지정하고 단일 파일을 대상 대상으로 지정해야 합니다.

예를 들어 file1.txt을 file2.txt로 입력합니다.

mv file1.txt file2.txt

 

 

 

mv 명령을 사용하여 여러 파일의 이름을 변경

mv 명령은 한 번에 하나의 파일만 이름을 바꿀 수 있지만 여러 파일의 이름을 바꾸기 위해 루프 도중 또는 find 또는 inside bash와 같은 다른 명령과 함께 사용할 수 있습니다.

다음 예에서는 .html 확장을 .php로 변경하여 현재 디렉터리에 있는 모든 .html 파일의 이름을 바꾸기 위해 Bash for 루프를 사용하는 방법을 보여 줍니다.

for f in *.html; do
    mv -- "$f" "${f%.html}.php"
done

 

 

코드를 한 줄씩 분석해보겠습니다.

첫 번째 줄은 for 루프를 생성하고 .html로 에지하는 모든 파일의 목록을 반복합니다.

두 번째 줄은 목록의 각 항목에 적용되고 파일을 .html을 .php로 대체하여 새 항목으로 이동합니다. ${file%.html}이(가) 셸 매개 변수 확장을 사용하여 파일 이름에서 .tml 부분을 제거하는 중입니다.

done은 루프 세그먼트의 끝을 나타냅니다.

다음은 위와 같은 목표를 달성하기 위해 mv를 find와 함께 사용하는 예입니다.

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;

 

 

찾기 명령은 -exec 옵션을 사용하여 현재 디렉토리에서 .html로 끝나는 모든 파일을 하나씩 mv에 전달합니다. {} 문자열은 현재 처리 중인 파일의 이름입니다. 

위의 예에서 볼 수 있듯이 mv 명령을 사용하여 여러 파일의 이름을 변경하는 것은 Bash 스크립팅에 대한 충분한 지식이 필요하므로 쉬운 작업이 아닙니다.

 

 

 

rename 명령을 사용하여 파일 이름을 변경

이름 바꾸기 명령은 여러 파일의 이름을 바꾸는 데 사용됩니다. 이 명령은 정규식에 대한 기본 지식이 필요하므로 mv보다 고급입니다. 

구문이 다른 두 가지 버전의 이름 바꾸기 명령이 있습니다. rename 명령의 Perl 버전을 사용합니다. 시스템에 이 버전이 설치되어 있지 않으면 배포의 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다. 

Ubuntu 및 Debian에 설치 이름을 변경합니다.

sudo apt install rename

 

 

CentOS 및 Fedora에 이름 변경을 설치합니다.

sudo yum install prename

 

 

Arch Linux에 설치 이름 변경

yay perl-rename ## or yaourt -S perl-rename

 

 

rename 명령의 구문은 다음과 같습니다.

rename [OPTIONS] perlexpr files

 

 

rename 명령은 지정된 perlexpr 정규식에 따라 파일 이름을 바꿉니다. 펄 정규식에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

다음 예에서는 확장명이 .html인 모든 파일을 .php로 변경합니다.

rename 's/.html/.php/' \*.html

 

 

-n 옵션을 사용하여 이름을 바꾸지 않고 이름을 바꿀 파일 이름을 인쇄할 수 있습니다.

rename -n 's/.html/.php/' \*.html

# rename(file-90.html, file-90.php)
# rename(file-91.html, file-91.php)
# rename(file-92.html, file-92.php)
# rename(file-93.html, file-93.php)
# rename(file-94.html, file-94.php)

 

 

기본적으로 이름 바꾸기 명령은 기존 파일을 덮어쓰지 않습니다. -f 옵션을 전달하여 기존 파일을 덮어쓸 수 있습니다.

rename -f 's/.html/.php/' \*.html

 

 

다음은 이름 바꾸기 명령을 사용하는 방법에 대한 몇 가지 일반적인 예입니다. 

파일 이름의 공백을 밑줄로 바꿉니다.

rename 'y/ /\_/' \*

 

 

파일 이름을 소문자로 변환합니다.

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

 

 

파일 이름을 대문자로 변환합니다.

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

 

반응형