본문 바로가기

Linux

빈 디렉토리 찾아서 지우기

file이 없는 빈 디렉토리를 찾고 싶은 경우에는 다음과 같이 하면 된다.

find <시작 디렉토리> –type d –empty

그런데 만약 빈 디렉토리를 찾아서 지우고 싶다면 아래와 같이 하면 될까?

find <시작 디렉토리> –type d –empty –exec rmdir {} ;

/dir1/dir2/dir3 각각이 모두 파일이 없을 경우에 rmdir이 아래의 순서대로 수행이 되어야 한다.

rmdir /dir1/dir2/dir3
rmdir /dir1/dir2
rmdir /dir1

마찬가지로 find도 이런 순서대로 디렉토리를 찾아야 한다. 이런 검색 순서를 depth first search라고 일반적으로 부른다. 위의 명령이 뜻대로 동작하기 위해서는 아래와 같이 해 주면 된다. –depth 옵션을 추가하면 된다.

find <시작 디렉토리> –depth –type d –empty –exec rmdir {} ;