강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

파일명 일괄변경하는 rename 활용법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

파일명 일괄변경하는 rename 활용법

 

 

 

 

 

명령어의 이름에서도 알 수 있듯이 하나 혹은 하나이상의 파일명을 변경하는 명령어이다.

 

 

 

 시스템관리를 하다보면 특정파일들의 확장자를 동일하게 수정해야하는 경우가 있다.

 

 

 

 , 특정파일의 이름을 변경하는 경우에도 유용하지만 특정파일의 이름을 변경하는 경우에는 흔히 mv라는 명령어를 주로 사용한다.

 

 

 

 이번 절에서 설명하고 있는 rename이라는 명령어는 주로 하나이상의 동일한 확장자를 동일한 다른 확장자로 수정하고자 할 경우에 사용한다.

 

 

 

  예를들어 .htm확장자를 .html로 일괄 수정하는 경우라든지 혹은 .text .txt 로 모두 일괄 수정해야하는 경우가 이에 해당한다.

 

 

 

 

 

사용형식 : rename 변경전파일명  변경후파일명  대상파일

 

 

 

그리고 이 명령어는 파일패턴문자(?, *)를 인식하기 때문에 여러 개의 파일에 동시에 사용할 수 있다.

 

 

 

 

 

다음은 rename의 사용이유를 가장 잘 알 수 있는 예로서 동일한 형식의 파일명으로 파일명을 변경하는 예이다.

 

 

 

 

 

아래와 같은 파일들이 존재한다라고 할 때에 rename명령어를 사용하여 test01, test02,...,test05와 같은 형식의 파일명으로 수정하려고 한다.

 

 

 

만약 rename명령어의 정확한 사용법을 몰랐다면 여러분이나 필자나 아마도 mv라는 명령어를 5번 사용하여 각각 수정해 주었을 것이다.

 

 

 

 

 

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test1

-rw-r--r--    1 root     root          192 Mar 28 14:38 test2

-rw-r--r--    1 root     root          192 Mar 28 14:38 test3

-rw-r--r--    1 root     root          192 Mar 28 14:38 test4

-rw-r--r--    1 root     root          180 Mar 28 14:38 test5

[root@sulinux ~]#

 

 

 

아래와 같이 rename명령어를 수행하였다.

 

 

 

 그리고 ls명령어로 그 결과를 확인하였다.

 

 

 

 

 

[root@sulinux ~]# rename test test0 test?

[root@sulinux ~]#

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test01

-rw-r--r--    1 root     root          192 Mar 28 14:38 test02

-rw-r--r--    1 root     root          192 Mar 28 14:38 test03

-rw-r--r--    1 root     root          192 Mar 28 14:38 test04

-rw-r--r--    1 root     root          180 Mar 28 14:38 test05

[root@sulinux ~]#

 

 

 

 

위의 명령의 결과로 우리가 원하는 파일명으로 일괄수정 되었음을 알 수 있다.

 

 

 

 여기서 위의 예에서 사용한 rename명령어의 형식에 대해서 간단히 언급하겠다.

 

 

 

 

 

rename : 명령어

 

test   : 변경전 파일패턴

 

test0  : 변경후 파일패턴

 

test?  : 적용대상파일들, 여기서 ?는 임의의 문자를 의미하므로 test? test1, test2,..등의 모든 파일을 의미한다.

 

 

 

 

 

이제 여러분들께서는 rename명령어에 대한 정확한 용도와 사용법을 이해하였을 것이다.

 

 

 

 

 

다음은 앞의 예와 반대로 test01, test02,..와 같은 형식의 파일들을 test1, test2,..와 같은 형식으로 일괄 변경한 것이다.

 

 

 

 먼저 아래 ls명령어의 결과로 확인 할 수 있는 파일들의 패턴을 확인해 보기 바란다.

 

 

 

 

 

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test01

-rw-r--r--    1 root     root          192 Mar 28 14:38 test02

-rw-r--r--    1 root     root          192 Mar 28 14:38 test03

-rw-r--r--    1 root     root          192 Mar 28 14:38 test04

-rw-r--r--    1 root     root          180 Mar 28 14:38 test05

[root@sulinux ~]#

 

 

 

위의 파일들의 파일명을 변경하기 위하여 아래와 같이 rename명령어를 사용하였다.

 

 

 

 그리고 ls명령어로 그 결과를 확인하였다.

 

 

 

 

 

[root@sulinux ~]# rename test0 test test??

[root@sulinux ~]#

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test1

-rw-r--r--    1 root     root          192 Mar 28 14:38 test2

-rw-r--r--    1 root     root          192 Mar 28 14:38 test3

-rw-r--r--    1 root     root          192 Mar 28 14:38 test4

-rw-r--r--    1 root     root          180 Mar 28 14:38 test5

[root@sulinux ~]#

 

 

 

여기에서도 사용한 rename명령어의 이해를 정확하게 하는 것이 무엇보다 중요하다.

 

 

 

 

 

rename   : 명령어

 

test0    : 변경전 파일패턴

 

test     : 변경후 파일패턴

 

test??  : 적용대상파일들, 여기서 ??는 임의의 문자를 의미하므로 test?? test01, test02,..등의 모든 파일을 의미한다.

 

 

 

 

 

이제, rename의 좀 더 다양한 사용 예를들어보기 위하여 test1, test2,..와 같은 형식의 파일들을 test001, test002,..와 같은 형식으로 변경하는 예를 보도록 하자. 먼저 ls명령어로 현재 아래와 같은 파일들이 있음을 확인하였다.

 

 

 

 

 

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test1

-rw-r--r--    1 root     root          192 Mar 28 14:38 test2

-rw-r--r--    1 root     root          192 Mar 28 14:38 test3

-rw-r--r--    1 root     root          192 Mar 28 14:38 test4

-rw-r--r--    1 root     root          180 Mar 28 14:38 test5

[root@sulinux ~]#

 

 

 

그리고 아래와 같이 rename명령어를 수행하였다.

 

 

 

 그리고 ls명령어로 그 결과를 확인하였다.

 

 

 

 

 

[root@sulinux ~]# rename test test00 test?

[root@sulinux ~]#

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test001

-rw-r--r--    1 root     root          192 Mar 28 14:38 test002

-rw-r--r--    1 root     root          192 Mar 28 14:38 test003

-rw-r--r--    1 root     root          192 Mar 28 14:38 test004

-rw-r--r--    1 root     root          180 Mar 28 14:38 test005

[root@sulinux ~]#

 

 

 

위에서 사용한 rename명령어는 test1, test2,..와 같은 형식의 파일들을 test001, test002,..등과 같은 형식의 파일로 변경하기 위한 것이다.

 

 

 

 앞서 설명한 바와 같이 명령어의 사용형식을 정확하게 이해하는 것이 가장 중요하다.

 

 

 

 

 

다음은 *.htm파일 확장자를 가진 모든 파일을 동시에 *.html로 일괄수정하는 예이다.

 

 

 

 이번예가 rename명령어의 꽃이라 할 수 있는 가장 실무적인 예라고 할 수 있다.

 

 

 

 , 흔히 웹서버로 사용되고 있는 서버에서는 *.htm파일확장자를 모두 *.html로 수정해야 하는 경우가 있을 것이며, 또한 그 반대의 경우도 있을 것이다.

 

 

 

 따라서 이번 예에서는 *.htm의 확장자를 가진 모든 파일들 *.html의 확장자로 한번에 수정하는 예를 보도록 하자.

 

아래의 예는 현재 파일들의 리스트를 확인하기 위하여 ls명령어를 사용한 것이다.

 

 

 

 

 

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test1.htm

-rw-r--r--    1 root     root          192 Mar 28 14:38 test2.htm

-rw-r--r--    1 root     root          192 Mar 28 14:38 test3.htm

-rw-r--r--    1 root     root          192 Mar 28 14:38 test4.htm

-rw-r--r--    1 root     root          180 Mar 28 14:38 test5.htm

[root@sulinux ~]#

 

위의 파일리스트를 보면 모든 파일들이 *.htm이라는 확장자를 가지고 있음을 알 수 있다.

 

 

 

 이들 파일확장자를 *.html로 일괄 수정하도록 하겠다.

 

 

 

 , 아래의 예에서 rename이라는 명령어를 사용하여 *.htm확장자를 *.html로 수정한 것이다.

 

 

 

 그리고 그 결과를 확인하기 위하여 ls명령어를 사용하였다.

 

 

 

 

 

[root@sulinux ~]# rename .htm .html *.htm

[root@sulinux ~]#

[root@sulinux ~]# ls -l

total 20

-rw-r--r--    1 root     root          180 Mar 28 14:38 test1.html

-rw-r--r--    1 root     root          192 Mar 28 14:38 test2.html

-rw-r--r--    1 root     root          192 Mar 28 14:38 test3.html

-rw-r--r--    1 root     root          192 Mar 28 14:38 test4.html

-rw-r--r--    1 root     root          180 Mar 28 14:38 test5.html

[root@sulinux ~]#

 

 

 

 

위의 결과를 보면 모든 파일들이 *.htm확장자에서 *.html확장자로 일괄수정 되었음을 확인할 수 있다.

 

 

 

 위에서 사용했던 rename명령어의 형식을 간단히 설명하면 다음과 같다.

 

 

 

 

 

rename : 실행 명령어

 

.htm   : 명령어 적용이전의 파일 확장자 패턴

 

.html  : 명령어가 적용된 후의 파일 확장자 패턴

 

*.htm  : 이 명령의 수행으로 적용될 대상 파일들

 

 

 

그리고 다음 예는 바로 앞의 예와 반대의 경우로서 *.html형식의 모든 파일을 *.htm으로 변경하는 예이다.

 

 

 

 

 

[root@sulinux ~]# rename .html .htm *.html

 

 

 

 

이제 여러분들께서는 rename 명령어에 대한 매력을 확실히 느꼈을 것이다.

 

 

 

 아무리 강력하고 훌륭한 명령어라 하더라도 실무에 유용하지 않은 명령어는 죽은 명령어나 다름 없다.

 

 

 

 흔히 rename명령어는 파일명을 변경하는 명령어라고들 알고 있지만 방금 설명한 바와 같이 복잡한 쉘스크립트나 프로그램을 하지 않아도 원하는 확장자로 일괄 수정하는 아주 매력적인 명령어라는 것을 꼭 기억하기 바란다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,908 개
  • 현재 접속자 :  207 명