Mv

mv(move의 줄임말)는 하나 이상의 파일이나 디렉터리를 한 장소에서 한 다른 장소로 이동하도록 만드는 유닉스 명령어이다. 원본 파일은 삭제되고 새로운 파일은 같은 혹은 다른 이름을 갖게 된다. 만약 가능하다면(이를테면 원본 파일과 새로운 파일이 같은 파일 시스템이 있다면), mv는 대신 그 파일의 이름을 바꾼다. 변경될 모든 디렉터리에 대해서 쓰기 권한이 필요하다.

기존 파일과 충돌할 경우 
파일을 (같은 디렉터리에) 이미 존재하는 파일과 같은 이름을 가지도록 이동하는 모든 경우에, 기존 파일은 제거된다. 만약 기존 파일이 쓰기 가능하지 않지만 디렉터리가 쓰기 가능할 경우, mv 명령어는 -f(force) 옵션이 쓰이지 않는 한, 가능하다면(즉, terminal에서 실행 중이라면), 실행 전에 명령을 수행할 지 확인한다.

복사와 삭제의 차이 
일반적으로 파일을 같은 볼륨 내에서 이동시킬 경우, 이동(혹은 이름 바꾸기)은 단순히 원본 파일을 복사하거나 삭제하는 것이 아니라는 점을 주의해야 한다. 파일을 이동시킬 경우, 기존 부모 디렉터리에서 링크는 단순히 제거되고 새로운 부모 디렉터리에 추가된다. 하지만 그 파일 자체는 그대로이다 (즉, 그것은 디스크 위의 같은 장소에 같은 inode들과 resides을 갖는다) 예를 들어서 읽을 수 없는 파일을 복사할 수는 없지만 그 파일을 이동(혹은 이름 바꾸기)할 수 있다 (만약 그 파일이 당신에게 기존 혹은 새로운 부모 디렉터리로 쓰기 기능을 제공할 경우). 또한, 당신이 쓰기 기능을 부여받지 않은, 비어있지 않은 디렉터리가 있다고 가정해보자. 당신은 그 디렉터리 안의 내용물들을 삭제할 수 없으므로 그 디렉터리를 삭제할 수 없다. 그러나 당신은 그 디렉터리를 이동(혹은 이름 바꾸기)할 수 있다. 또한 한 볼륨 내의 파일 이름들 간의 이동이 파일들의 복사를 유발하지는 않기 때문에, 이것은 보다 빠르고 디스크 위에 있는 읽기와 쓰기에 제한을 가하지 않는다. 하지만 다른 볼륨 간의 파일들의 이동은 복사와 이동이 필요하다.

예 
 mv myfile mynewfilename    # 파일 이름을 재명명.
 mv myfile otherfilename    # 기존 파일 "myfile"을 지우고 그 파일을 다른 이름으로 재명명한다.
 mv myfile /myfile          # 현재 디렉터리에서 root 디렉터리로 'myfile'을 이동시킨다.
 mv myfile dir/myfile       # 'myfile'을 현재 디렉터리와 관련된 'dir/myfile'로 이동시킨다.
 mv myfile dir              # 위의 명령어와 동일. (파일 이름을 같게 하라는 것을 내포하고 있음)
 mv myfile dir/myfile2      # 'myfile'을 dir로 옮기고 그것을 'myfile2'로 재명명한다.
 mv foo bar baz dir         # 여러 개의 파일을 디렉터리 dir로 이동시킨다.
 mv --help                  # 명령어의 문장론에 대한 매우 간결한 도움말을 보여준다.
 man mv                     # terminal 안에 있는 'mv'에 대한 매우 광대한 사용자 매뉴얼을 보여준다.
어떠한 경우에나, 이동되거나 재명명되는 그 파일이나 혹은 여러 파일들은 디렉터리가 될 수 있다.

mv name1 name2 또는 mv name1 /dir/name2와 같이 명령어가 두 개의 논리로 요구되는 경우, 이것은 name2가 존재하지 않는가, name2가 기존 파일인가, name2가 기존 디렉터리인가에 따라 세가지의 다른 결과를 가질 수 있다. 만약 사용자가 기존 디렉터리를 의미하기 원한다면 /를 입력해야 한다. 어떤 유닉스 버전에서는 이름에 덮붙여져서 그 시스템으로 하여금 그것을 확인하도록 만들 수 있다. 파일을 새로운 디렉터리에 옮기려면 먼저 그 디렉터리가 만들어져야 한다.

관련 페이지 
 cp
 rm
 유닉스

참고 자료 
  
  

유닉스 SUS2008 유틸리티