리눅스에서 파일 처리를 할 때 가장 많이 쓰이는 명령어 중에 하나인 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.txt
와 b.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
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…