JooTC
linux-logo-202009-grad2

리눅스 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
구독
알림
guest

0 Comments
Inline Feedbacks
모든 댓글 보기
0
이 포스트에 대한 의견을 남겨주세요!x