명령어

리눅스 mv 명령어 – 파일 및 디렉토리 이동 또는 이름 바꾸기

리눅스 명령어 – mv

리눅스에서 파일 처리를 할 때 가장 많이 쓰이는 명령어 중에 하나인 mv를 알아보겠습니다. 예상하셨겠지만 mv이동(move)의 약자이고, 말 그대로 파일이나 디렉토리의 위치를 지정한 곳으로 이동시켜주는 역할을 합니다.

이 뿐만이 아니라 mv는 위치에 상관없이 파일이나 디렉토리의 기존 이름을 다른 이름으로 변경해줍니다. 이름 변경을 할 수 있는 다른 명령어로는 rename이 있으나 몇몇 리눅스 배포판에는 rename을 별도로 설치해야 하기 때문에 mv 명령어에 익숙해지는 것이 가장 좋습니다.

사용 방법

mv 명령어의 사용법은 아주 간단합니다. mv에는 두개 이상의 인자값이 필요합니다. 각각의 인자값 사이에는 당연히 공백을 넣어야 합니다.

  • 첫번째 인자값에는 원본 파일(또는 디렉토리)의 출발지 경로,
  • 두번째 인자값에는 변경될 파일(또는 디렉토리)의 목적지 경로가 들어가야 합니다.
$ mv {옵션 (선택적)} {첫번째 인자값} {두번째 인자값}

만약 목적지 경로와 출발지 경로의 파일(또는 디렉토리)명이 다른 경우 이름 변경이 처리됩니다.

파일 이동

/home/user/Downloads에 위치한 a.txt라는 파일을 /home/user/Desktop으로 이동해보겠습니다. 현재 위치한 Downloads 디렉토리의 경로가 첫번째 인자에, 이동할 디렉토리인 Desktop 경로는 두번째 인자에 넣어줍니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop/a.txt

위 예제에서 보시듯이 인자 사이에 공백(Space) 한칸을 띄워주어야 합니다. 이렇게되면 왼쪽의 위치(…Downloads…)에서 오른쪽의 위치(…Desktop…)로 이동하게 됩니다.

만약 이동할 때 파일명은 따로 변경하지 않을 경우 두번째 인자에는 파일명이 포함되지 않아도 됩니다. (첫번째 인자에는 반드시 포함) 실행 결과는 위와 같습니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop

이번에는 디렉토리와 디렉토리 내의 파일 전체를 통째로 이동해보겠습니다. /home/user/Downloads 디렉토리를 /home/user/Desktop에 옮겨보겠습니다. 위 예시를 응용하면 금방 답을 찾을 수 있습니다.

$ mv /home/user/Downloads /home/user/Desktop

디렉토리를 이동하는 것이므로 파일을 입력할 필요는 없습니다.

이번에는 Downloads에 있는 여러 파일(a.txtb.txt, c.txt가 있다고 가정)을 동시에 Desktop 디렉토리로 옮겨보겠습니다. 이해상 편의를 위해 이동할 폴더로 이동(cd)한 후 진행해보겠습니다.

$ cd /home/user/Downloads
$ mv a.txt b.txt c.txt /home/user/Desktop/

조금은 복잡해보이지만 결론적으로 인자의 수가 얼마나 많든 마지막 인자가 목적지가 됩니다. 결론적으로 a, b, c 파일을 Desktop 경로로 이동하게 됩니다.

와일드카드 기호(*)를 사용하면 위 예시를 더욱 간단하게 만들 수 있습니다. (txt 파일이 a, b, c만 있다고 가정)

$ cd /home/user/Downloads
$ mv *.txt /home/user/Desktop

파일 이름 변경

이름 변경은 파일 이동을 활용하되, 출발지 경로와 목적지 경로의 파일 이름이 다르면 됩니다.

같은 경로 내에 a.txt라는 파일이 있을 때 aa.txt로 이름을 변경하고 싶다면 아래와 같이 사용합니다.

$ mv a.txt aa.txt

주의할 점은 확장자가 있는 파일은 위와 같이 목적지 경로에도 확장자는 꼭 써주어야 합니다. 확장자가 있는 파일인데 쓰지 않는다면 파일 형식이 변경될 수 있습니다.

마찬가지로 디렉토리의 이름도 변경할 수 있습니다. 아래 명령은 myFolder의 디렉토리 이름을 altFolder로 변경하는 예시입니다.

$ mv /home/user/myFolder /home/user/altFolder

또 하나 주의할 점은 디렉토리와 파일(확장자가 없는)은 이름이 같을 수 없습니다. 예를 들어 같은 경로에 abc라는 파일과 abc라는 디렉토리는 존재할 수 없습니다. 이렇게 되면 파일을 강제로 덮어씌울 수 있으므로 유의해서 사용해야 합니다.

mv의 두가지 특성을 활용하여 다른 경로로 이동하면서 파일 이름을 동시에 변경할 수 있습니다. 아래 예시는 Downloads 디렉토리의 a.txt 파일을 Desktop 디렉토리로 이동하면서 b.txt라는 이름으로 변경합니다.

$ mv /home/user/Downloads/a.txt /home/user/Desktop/b.txt
JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

[iOS] Xcode ‘You do not have required contracts to perform an operation’ 해결

Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…

1개월 ago

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

7개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

9개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

9개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

9개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

9개월 ago