다음과 같은 디렉터리 트리가 있다고 가정해 보겠습니다.
ROOTDIR
└--SUBDIR1
└----SUBDIR2
└----SUBDIR3
입력할 때 다음과 같은 명령을 찾고 있습니다.
$ [unknown command] ROOTDIR
전체 디렉토리 트리를 삭제할 수 있습니다.전체 트리에 파일이 없고 디렉토리만 있는 경우. 그러나 SUBDIR1 아래에 hello.pdf라는 파일이 있다고 가정합니다.
ROOTDIR
└--SUBDIR1
└--hello.pdf
└----SUBDIR2
└----SUBDIR3
그런 다음 명령은 SUBDIR2 이하만 삭제해야 합니다.
답변1
find ROOTDIR -type d -empty -delete
그것은 같은
find ROOTDIR -type d -depth -empty -exec rmdir "{}" \;
하지만 내장된 "-delete" 작업을 사용하세요.
"-삭제"는 "-깊이"를 의미합니다.
답변2
알렉시스는 가까웠다. 당신이 해야 할 일은 다음과 같습니다:
find . -type d -depth -empty -exec rmdir "{}" \;
먼저 첫 번째 빈 디렉터리를 찾을 때까지 디렉터리 트리를 드릴다운한 다음 삭제합니다. 따라서 상위 디렉토리를 비운 다음 삭제하는 등의 작업을 수행합니다. 이렇게 하면 원하는 효과가 나올 것입니다. (아마 일주일에 10번 정도 이 작업을 수행하므로 이것이 맞다고 확신합니다.) :-)
답변3
나는 이것을 시도할 것이다:
find ROOTDIR -type d -depth -exec rmdir {} \;
답변4
rmdir $(find ROOTDIR -type d | sort -r)