본문 바로가기
IT/운영체제, 프로그램

[윈도우10] 별도 프로그램 없이 빈 폴더 삭제하는 명령어! (for, dir, rm)

by 누에고치 2021. 1. 27.

안녕하세요!

 

사진 정리작업 등 대규모 파일 정리작업을 하거나, 프로그램을 깔고 지우는 과정에서 필요없는 빈 폴더가 많이 생겨 거슬릴 때가 있는데요.

 

윈도우에서는 빈 폴더를 자동으로 지워주는 자체 기능은 없지만, CMD 명령어(for, rd)를 이용해 빈 폴더를 삭제할 수 있습니다.

 

명령어

1. 우선 명령 프롬프트를 실행합니다.

 

2. 삭제하고자 하는 폴더의 경로로 접근해줍시다.

(탐색기 창에서 주소줄을 클릭한 뒤 복사해 cd '경로'를 붙여넣으셔도 좋습니다.)

 

3. 다음의 명령어를 입력해줍니다.

for /f "delims=" %i in ('dir /s /b /ad ^| sort /r') do rd "%i" 2>NUL

또는,

for /f "usebackq delims=" %i in (`"dir /s /b /ad | sort /r"`) do rd "%i" 2>NUL

기능은 같습니다. 저는 위의 명령어를 즐겨 이용하고 있습니다.

 

명령어 원리 설명

양찬모님께서 댓글로 원리를 여쭤보셔서 설명했던 내용인데, 참고가 될 것 같아 본문에도 기재합니다. 좋은 질문 감사합니다.

 

이 명령어는 for - in - do 문의 일종으로, 특정 조건에서(in) 특정 변수(for) 특정 동작(do)을 합니다.

for문에서는 변수와 시행방식 등을 정의합니다. 변수는 %i이며, /f "delims=" 옵션을 넣어 모든 공백을 다른 행으로 처리하는 것을 방지해줍니다.

in문에서는 조건을 정의합니다. dir으로 불러와진 폴더 디렉토리 중 빈 폴더만을 sort 하는 것인데, 상세한 패러미터는 MS 매뉴얼을 참고해주십시오.
1) DIR: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/dir
2) SORT: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sort

do 문에서는 이렇게 나온 결과값 %i를 삭제(rd)해줍니다. 2>NUL은 제가 알기로는 에러값을 표시해주는 역할입니다. (정상 스트링은 1>, 에러 스트링이 2> 입니다.)

 

유용하게 쓰시길 바랍니다!

반응형