리눅스 시스템에서 파일 이름 바꾸기는 일반적으로mv(이동)명령에 의해 처리됩니다. 구문은mv old.txt new.txt입니다. 충분히 간단하지만,한 번에 이름을 바꿀 필요가있는 여러 파일,심지어 수백 개의 파일이 있다면 어떨까요? 우리는 스크립팅의 비트를 수행하지 않는 한 기본 뮤직 비디오 유틸리티는 하나 이상의 파일 이름 바꾸기를 처리 할 수 없습니다. 또한rename및mmv과 같은 문제를 해결하기 위해 설치할 수있는 다른 유틸리티가 있습니다.
이 가이드에서는mv명령과rename및mmv도구를 사용하여 리눅스 배포판의 여러 파일 이름을 바꾸는 방법을 보여 드리겠습니다. 구문 및 각 메서드 사용 방법을 이해할 수 있도록 몇 가지 예제를 살펴보겠습니다.
이 튜토리얼에서 당신은 배울 것이다:
- 주요 리눅스 배포판에 이름 바꾸기 설치 방법
- 주요 리눅스 배포판에 이름 바꾸기 설치 방법
- 명령 예제를 통해 이름 바꾸기 사용 방법
- 명령 예제를 통해 이름 바꾸기 사용 방법
| 범주 | 요구 사항,규칙 또는 소프트웨어 버전 사용 |
|---|---|
| 시스템 | 모든 리눅스 배포판 |
| 소프트웨어 | |
| 다른 | 루트로 또는sudo명령을 통해 리눅스 시스템에 대한 권한 액세스. |
| 규칙 | #-주어진 리눅스 명령이 루트 사용자로 직접 또는sudo명령$를 사용하여 루트 권한으로 실행되어야 함-주어진 리눅스 명령이 일반 권한이 없는 사용자로 실행되어야 함 |
당신이 배쉬 스크립팅의 조금을 알고있는 경우 뮤직 비디오 명령으로 여러 파일의 이름을 바꾸는 것은 쉽다. 이 방법의 일반적인 용도를 보려면 아래 예제 중 일부를 살펴보십시오.
- 다음 명령을 추가합니다.현재 작업 디렉토리에있는 모든 파일에 대한 확장명.
$ for i in $( ls ); do mv $i $i.txt; done
- 모든 파일에서 파일 확장자를 제거하려면 이 명령을 사용할 수 있습니다.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- 모든 파일의 파일 확장자를 변경할 수도 있습니다. 다음 명령은 모든 파일을 변경합니다.에 확장 로그.티에스트
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- 찾기 명령과 함께
-exec옵션을 사용하여 한 번에 여러 파일의 이름을 바꿀 수도 있습니다. 이 명령은 추가됩니다.패턴”파일”로 시작하는 모든 파일에 박.
$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- 이 명령은 찾기 및
-exec옵션을 사용하여 끝나는 모든 파일에”_백업”을 추가합니다.확장 프로그램.
$ find . -name "*.txt" -exec mv {} {}_backup \;
- 우리는 또한 같은 일을 할 수 있습니다. 이 명령은
ls명령의 표준 입력을 수락합니다.확장 프로그램.
$ ls *.txt | xargs -I{} mv {} {}_backup
- 로 모든 파일을 변경합니다.현재 디렉토리에 소문자 만 가지고,이 명령은 일을 할 것입니다.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
$ for i in $( ls ); do mv $i $i.txt; done
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
-exec옵션을 사용하여 한 번에 여러 파일의 이름을 바꿀 수도 있습니다. 이 명령은 추가됩니다.패턴”파일”로 시작하는 모든 파일에 박.
$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
-exec옵션을 사용하여 끝나는 모든 파일에”_백업”을 추가합니다.확장 프로그램.
$ find . -name "*.txt" -exec mv {} {}_backup \;
ls명령의 표준 입력을 수락합니다.확장 프로그램.
$ ls *.txt | xargs -I{} mv {} {}_backup
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
이 방법의 장점은 추가 리눅스 소프트웨어가 필요 없다는 것입니다. 그러나 이러한 예에서 보았 듯이 몇 개의 파일 이름을 바꾸는 것과 같은 간단한 작업을 수행하는 것은 다소 복잡 할 수 있습니다. 설치가 필요한 몇 가지 더 편리한 옵션을 보려면 아래의 다른 방법 중 일부를 확인하십시오.
설치 이름 바꾸기 유틸리티
리눅스 배포판은 이미rename기본적으로 설치되어 있을 수 있습니다. 이미 설치되어 있지 않은 경우 아래의 해당 명령을 사용하여 시스템의 패키지 관리자를 통해 설치할 수 있습니다.
우분투,데비안,리눅스 민트에 이름 바꾸기 설치:
$ sudo apt install rename
설치하려면 다음 단계를 따르세요:
$ sudo dnf install prename
아치 리눅스와 만자로에 이름 바꾸기를 설치하려면:
$ sudo pacman -S perl-rename
이름 바꾸기 명령 예제
rename명령은 실제 이름 바꾸기를 수행하기 위해 펄 식을 허용합니다. 이 구문에 이미 익숙하다면 이름 바꾸기는 매우 쉽게 사용할 수 있습니다. 그렇지 않은 경우,걱정하지 마세요,우리는 당신이 그것의 묘리를 터득하는 데 도움이됩니다 아래의 몇 가지 예를 가지고.
여기에서는 한 번에 여러 파일의 이름을 바꾸는 데 필요한 가장 일반적인 시나리오를 컴파일했습니다. 이 명령은 이름을 바꾸려는 파일이 현재 작업 디렉터리에 있다고 가정합니다. 원하는 경우 항상 다른 디렉토리의 경로를 지정할 수 있습니다.
rename와 함께 사용할 수 있는 몇 가지 옵션이 있습니다. -n옵션은 실제로 변경하지 않고 이름 바꾸기를 변경할 내용을 표시합니다. 이것은 당신이 어떤 바람직하지 않은 변경을 방지하는 데 도움이됩니다. -v(자세한 정보 표시)옵션은 이름이 성공적으로 변경된 파일의 이름을 인쇄합니다.
- 이 명령은 대문자 파일의 이름을 소문자로 바꿉니다.
$ rename 'y/A-Z/a-z/' *
또는 소문자를 대문자로 변환하려면:
$ rename 'y/a-z/A-Z/' *
- 여러 파일의 확장명을 변경하려면 다음 구문을 사용합니다. 이 특별한 예는 변환됩니다.로그 파일.파일.
$ rename 's/\.log$/\.txt/' *.log
- 각 파일 이름의 첫 글자를 대문자로 표시하려면 다음 명령을 사용합니다.
$ rename 's/\b(\w)/\U/g' *
- 파일 이름에서 공백을 모두 제거하려면 이 명령을 실행합니다.
$ rename "s/ *//g" *
또는 공백을 밑줄로 바꾸려면:
$ rename 's/\s+/_/g' *
- 여러 파일에서 파일 확장명을 제거하려면 다음 구문을 사용합니다. 이 예는 제거합니다.박 확장.
$ rename 's/\.bak$//' *.bak
아래의 적절한 명령을 사용하여 시스템의 패키지 관리자를 통해 설치할 수 있습니다.
설치 mmv 우분투에서 데비안 리눅스 민트:
$ sudo apt install mmv
를 설치하 mmv 에 CentOS,Fedora,AlmaLinux,Red Hat:
$ sudo dnf install mmv
를 설치하 mmv 에 아치 리눅스와 Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
명령 예제
명령에서 와일드카드를 수락하여 많은 파일의 이름을 쉽게 바꿀 수 있는 기능입니다. 이를 통해 파일 이름에서 특정 패턴을 쉽게 추가하거나 제거하거나 이름 내에 텍스트를 정렬 할 수 있습니다. 아래 예제 중 일부를 확인 하 고 그것으로 실행 하는 자신을 찾을 수 있는 가장 일반적인 명령의 일부를 참조 하십시오. 1398>옵션을 사용하여 변경 내용을 미리 볼 수 있습니다.
- 이 예제를 사용하여 여러 파일의 파일 확장자를 변경합니다. 이 명령은 확장자를 가진 모든 파일을 변경합니다.에.웹페이지
$ mmv '*.htm' '#1.html'
- 이 명령은 모든 파일 이름에”바”와”푸”의 첫 번째 발생을 대체합니다.
$ mmv '*foo*' '#1bar#2'
- 이 예제에서는
access.log-dbserver및rejected.log-webserver과 같은 파일을 가져와 각각access-dbserver.log및rejected-webserver.log로 이름을 바꿉니다. 이 작업을 위해,우리는 단지 이러한 경우 대시 및 기간으로 일관된 패턴을 가질 필요가있다.
$ mmv '*.log-*' '#1-#2.log'
- 이 명령을 사용하여 모든 파일 이름을 소문자로 변경합니다.
$ mmv '*' '#l1'
- 반대로 파일 이름을 모두 대문자로 변경하십시오.
$ mmv '*' '#u1'
이 가이드에서는 리눅스에서 동시에 여러 파일의 이름을 바꾸는 여러 가지 방법을 배웠습니다. 우리는 또한 다른 시나리오를 많이 커버 할 수 또는 쉽게 유사한 상황에 맞게 적용 할 명령 줄 예제의 다수를 보았다. 대량 이름 바꾸기는 다음과 같은 기본 배쉬 유틸리티를 통해 수행 할 수 있습니다. 모든 방법은 자신의 강점과 약점을 가지고,그래서 당신은 당신을 위해 가장 편리 할 것입니다 생각 중 하나를 사용합니다.