리눅스에서 파일을 다른 경로로 옮길 때 mv 명령어를 사용한다. 그런데 간혹 mv 명령어를 사용할 때 권한 부족 문제가 발생한다. 이럴 때 mv 대신 cp로 파일을 복사하면 대체로 문제 없이 동작한다.
cp와 mv는 어떤 차이가 있을까.
cp는 원본 파일을 읽어서 새로운 파일을 생성하는 방식이다. 따라서 원본 파일의 내용을 읽기 위해 읽기(r) 권한이 필요하다. 또한 대상 디렉토리에 새 파일을 생성하기 위한 쓰기(w) 권한이 필요하다.
반면 mv는 파일을 복사 후 원본 파일을 삭제하는 방식으로 작동한다. 그렇기 때문에 원본 파일이 있는 디렉토리에 대한 쓰기(w) 권한이 필요하다. 원본 파일이 있는 디렉토리에 w 권한이 없으면 mv 명령어 사용 시 권한 부족 에러가 발생한다.