본문 바로가기

지식창고/Linux

[Linux] mv 명령어 Directory not empty 오류 해결 방법

반응형

 

파일들을 관리하다 보면 한 디렉터리에 다른 파일들을 무브 시켜야 할 때가 있습니다.

 

이럴 때 가장 먼저 생각나는 명령어는 mv입니다만 mv 명령어가 유일하게 안 되는 문제는 바로 디렉터리 병합이 안된다는 점이 있습니다.

 

옮기려고 하는 디렉터리에 이미 파일이 존재하고 있다면 아래와 같은 오류가 발생하게 됩니다.

 

mv: cannot move 'xxx' : Directory not empty

 

이러한 상황을 해결할 수 있는 방안 몇 가지를 소개해 드리고자 합니다. 

 

또한 방법마다의 장단점도 함께 알려드리려고 하니 끝까지 읽어주시면 해결하려는 문제에 도움이 되실 겁니다.

 

1. rsync 명령어

1-1. rsync 명령어 개요

rsync 명령어를 사용해서 옮기는 방법입니다. 다만 이 방법의 단점은 파일을 옮기는 게 아니라 동기화하는 것이기 때문에 옮기기 전 디렉터리와 파일들이 남아있게 됩니다. 그래서 작업이 완료된 후 옮기기 전 디렉터리를 삭제해주어야 하는 번거로움이 있습니다.

 

1-2. rsync 명령어 사용 방법

rsync -ahv [SORCE_DIR] [TARGET_DIR]

 

위 작업이 정상적으로 종료될 경우 rm 명령어를 사용해서 옮기기 전 디렉토리를 삭제해야 합니다.

rm -rf [SORCE_DIR]

 

 

2. find 명령어

2-1. find 명령어 개요

find 명령어를 사용하면 디렉터리 안에 파일들을 찾아서 타깃 디렉터리에 파일들을 옮길 수 있습니다.

 

2-2. find 명령어 사용 방법

find ./[SOURCE_DIR] -type f -exec mv {} /[PATH]/[TARGET_DIR]/ \;

 

 

반응형