"ls" 명령을 사용하여 빈 디렉터리 삭제

"ls" 명령을 사용하여 빈 디렉터리 삭제

findcommand 을 사용하지 않고 빈 디렉토리를 삭제하고 싶습니다 find . -empty -type d -delete. 이와 같이:

if [ "$(ls -d *)" ]; then
   echo "Not Empty"
else
   echo "Delete"
fi

만 사용하여 빈 디렉토리를 어떻게 삭제할 수 있습니까 ls?

답변1

rmdir빈 폴더는 삭제되고(다른 폴더는 남아 있음) 다음과 같은 방법을 사용할 수 있습니다.

rmdir */

또는 bash 4+를 사용하고 있고 재귀를 원하는 경우(다른 쉘에는 동일한 이름이 있습니다):

shopt -s globstar
rmdir **/

그러나 이렇게 하면 많은 오류 메시지가 표시됩니다(비어 있지 않은 폴더마다 하나씩).

관련 정보