​​ CMD에서 특정 폴더는 보존하면서 그 하위 폴더 및 파일 일괄 삭제하기

CMD에서 특정 폴더는 보존하면서 그 하위 폴더 및 파일 일괄 삭제하기

Cmd 명령창에서 1회의 Rmdir 명령만으로 특정 폴더를 제외한 모든 하위 폴더와 모든 하위 파일들을 제거할 수는 없습니다. 왜냐하면 Rmdir 명령어 자체가 특정 폴더를 포함해서 지우기 때문입니다. 하지만, 특정 폴더는 보존하면서 그 하위의 모든 파일과 폴더를 삭제하는 것이 불가능한 것은 아닙니다.

 

Rmdir 또는 Rd 명령어는 보통 /S와 /Q 옵션을 함께 사용하게 됩니다.

- /S 옵션은 지정된 디렉터리 자체와 그 안의 모든 디렉터리 및 파일을 지웁니다.

- /Q 옵션은 매너모드로 삭제 여부를 다시 물어보지 않고 바로 실행합니다.

 

즉, Rmdir이나 Rd 명령어의 특성이 지우려는 대상 폴더들과 파일이 있는 루트 디렉터리를 포함하여 모두 지우는 특성을 가진 명령어 이므로 Rmdir이나 Rd를 사용하여 특정 폴더는 보존하면서 그 하위의 모든 폴더와 파일을 지울 수는 없습니다.

그런데 간단히 생각해 보면 이 과정은 Rmdir 이라는 명령을 수행한 다음 Md라는 명령어를 한 번만 사용한다면 똑같은 효과를 거둘 수 있습니다. 복잡한 함수를 사용하여 굳이 루트 디렉터리를 제외하는 구문을 제작하기보다는 Rmdir 1회, Md 1회를 사용하는 것이 효율적일 수 있습니다.

 

예를 들어 D 드라이브에 존재하는 test 폴더안에는 수많은 폴더가 있으며 그 하위 폴더 안에는 각각 여러 개의 파일을 가지고 있다고 가정합니다. test 폴더를 보존하면서 하위의 폴더들과 파일만 삭제하려면 먼저 전체를 삭제한 다음 'Md test'를 하게 되면 똑같은 효과를 볼 수 있습니다.

즉, 아래와 같은 명령을 사용해 d드라이브에 존재하는 test 폴더와 하위 폴더 및 파일을 일괄 삭제한 다음 test폴더를 생성해주는 편법을 사용합니다.

 

-rmdir /s /q d:\test

- md d:test

 

 

댓글

Designed by JB FACTORY