HOWTO · Bash
Bash에서 파일 이름 바꾸기
이 튜토리얼에서는 Bash에서 파일 이름을 바꾸는 방법에 대해 설명합니다.
이 페이지의 내용
Bash 스크립트의 도움으로 작업을 자동화할 수 있습니다. 파일 이름 바꾸기는 모든 종류의 시스템에서 공통적인 작업입니다.
모든 파일의 이름을 하나씩 수동으로 바꿀 수 있습니다. 그러나 파일 이름에 시퀀스가 있는 경우 이 작업을 자동화하는 것이 좋습니다.
이렇게 하면 적절한 순서로 디렉터리의 모든 파일 이름을 쉽게 바꿀 수 있습니다.
이 기사에서는 디렉토리에 있는 모든 파일의 이름을 쉽게 바꿀 수 있는 방법을 소개합니다. 또한 주제를 더 쉽게 만들기 위해 필요한 예와 설명을 볼 것입니다.
mv 명령을 사용하여 Bash에서 파일 이름 바꾸기
Bash 스크립트에는 mv라는 내장 명령이 포함되어 있습니다. mv 명령은 주로 디렉토리와 파일을 한 위치에서 다른 위치로 이동하는 데 사용됩니다.
또한 파일 및 디렉토리의 이름을 바꾸는 데 사용할 수 있습니다. 이 명령에서 중요한 점은 파일의 새 이름을 지정하지 않으면 새 위치에서 파일 이름이 동일하다는 것입니다.
이 명령의 일반 구문은 $ mv [OPTIONS] SOURCE DESTINATION입니다. 이 명령에 사용할 수 있는 옵션은 다음과 같습니다.
mv -f- 이 플래그는 프롬프트 없이 대상 파일을 덮어써 강제로 이동합니다.mv -i- 이 플래그는 덮어쓰기 전 대화형 프롬프트용입니다.mv -u- 이 플래그는 업데이트용입니다. 대상이 아닌 새로운 소스인 경우에만 파일을 이동합니다.mv -v- 이 플래그는 소스 및 대상의 모든 파일을 인쇄합니다.man mv- 이 플래그는 도움말 설명서를 엽니다.
다음 순서의 파일 목록이 있다고 가정합니다.
1_file.txt
2_file.txt
3_file.txt
4_file.txt
5_file.txt
6_file.txt
이제 아래 코드 예제를 살펴보십시오.
for file in *.txt
do
mv "$file" "${file/_file.txt/_Textfile.txt}"
done
위의 예에서는 유형이 .txt인 모든 파일의 이름을 변경했습니다. 이를 위해 mv 명령과 함께 for 루프를 사용했습니다.
이제 이 목적을 위한 일반 구문은 mv "$LoopVar" "${LoopVar/PreviousName.txt/NewName.txt}"입니다.
여기에서 파일 이름과 함께 루프 변수를 포함해야 한다는 점에 유의해야 합니다. 그렇지 않으면 시스템 생성 이름이므로 덮어쓸 수 있습니다.
이제 위의 코드를 실행하면 아래와 같이 모든 파일의 이름이 변경된 것을 볼 수 있습니다.
1_Textfile.txt
2_Textfile.txt
3_Textfile.txt
4_Textfile.txt
5_Textfile.txt
6_Textfile.txt
이 명령에서 중요한 점은 파일을 식별하기 위해 파일 이름의 공통 부분을 지정하는 것입니다. 파일 유형 또는 파일 이름의 다른 일반적인 패턴일 수 있습니다.
그렇지 않으면 명령이 모든 파일의 이름을 성공적으로 바꾸지 못할 수 있습니다.
rename 명령을 사용하여 Bash에서 파일 이름 바꾸기
Bash 스크립트에는 rename이라는 타사 명령도 있습니다. 하지만 사용하기 전에 설치해야 합니다.
쉘 환경에서 이 명령을 설치하려면 Ubuntu 및 Debian에 대해 아래 명령을 따를 수 있습니다.
sudo apt install rename
그런 다음 아래와 같이 파일 이름을 바꿀 수 있습니다.
rename [Your Options] 's/[Current Filename]/[New Filename]/' [Filename]
이 명령에는 아래와 같은 옵션도 포함되어 있습니다.
-a- 이 옵션은 첫 번째 파일을 제외한 모든 파일 이름을 대체합니다.-f- 이 옵션은 기존 파일을 강제로 덮어씁니다.-h- 이 옵션은 도움말 텍스트를 표시합니다.-i- 이 옵션은 기존 파일을 덮어쓰기 전에 프롬프트 알림을 표시합니다.-l- 이 옵션은 첫 번째 요소 대신 마지막으로 나타나는 요소를 대체합니다.-n- 이 옵션은 테스트 실행을 수행합니다.-s- 이 옵션은 심볼릭 링크 대신 대상의 이름을 바꿉니다.-v- 이 옵션은 자세한 버전의 출력을 표시합니다.-V- 이 옵션은 명령 버전을 표시합니다.
아래 명령을 사용하여 위 파일 세트의 이름을 바꿀 수 있습니다.
rename -v 's/_Testfile/_Test/' *.txt
그러면 아래 출력이 표시됩니다.
1_Testfile.txt renamed as 1_Test.txt
2_Testfile.txt renamed as 2_Test.txt
3_Testfile.txt renamed as 3_Test.txt
4_Testfile.txt renamed as 4_Test.txt
5_Testfile.txt renamed as 5_Test.txt
6_Testfile.txt renamed as 6_Test.txt