최근 수정 시각 : 2024-04-11 06:37:57

cmd /c rd /s /q c:\

[include(틀:링크시 주의, 링크= cmd /c rd /s /q c:\\ 또는 cmd /c rd /s /q c:\ )]
VMware를 이용한 Windows XP 시연 동영상
만약 이 커맨드를 실수로 실행했을 때에는 그 즉시 명령 프롬프트를 종료하거나 컴퓨터를 강제종료한 뒤 컴퓨터를 다시 켜보고, 안 켜지면[1] 윈도우를 포맷하고, 클린 설치 방식으로 Windows 재설치를 해야 한다.[2]
1. 개요2. 해석3. 만약 다른 사람 컴퓨터에 입력한다면4. 기타

1. 개요

Microsoft Windows 운영체제에서 C 드라이브의 모든 하위 폴더와 파일을 삭제하는 명령어다. 초등학생같이 장난치기 좋아하는 무개념 사람들에 의해 낚시용으로 많이 사용되었으며, CLI를 보면 울렁증이 오는 컴맹들에게는 두려움의 대상이 되었다. 초딩 시절부터 CLI를 종종 보아온 80년대생이나, 컴퓨터에 관심이 있는 사람들에게는 잘 통하지 않는다. 당연하게도 Windows가 설치된 드라이브 문자를 다른 문자로 할당한 경우에도 통하지 않는다. Windows Vista까지는 D 드라이브에 설치하면 괜찮았지만 Windows 7(2008 R2) 이상 및 Windows XP 미디어 센터 에디션은 E 드라이브에 설치해도 부팅하면 윈도우가 설치된 드라이브가 C:\\로 되어 있다(이후 diskpart로 바꿀 수는 있다). 다른 문자로 할당한 경우에도 작동하게 하려면 C:\부분을 %SystemDrive%\로 바꿔주면 된다.

윈도우는 자신이 설치된 파티션의 드라이브 문자를 기본적으로 C로 지정해 마운트하며, OS 구동에 필요한 모든 파일들이 24시간 사용되고 있는 것도 아니다. 부팅 시에만 요구되거나 특정 기능을 사용할 때만 읽어오는 파일들은 꽤 많기 때문에 C 드라이브에서 삭제할 수 있는 파일만 삭제해도, 심지어 파일 삭제 없이 중요 파일의 바이트 하나만 건드려도 부팅부터 막힐 수 있다. 따라서 이 명령어의 실행은 컴퓨터를 즉결처분하는 것과 다름없어서 인터넷에서 괴담처럼 떠돌아 다닌 적이 있었다. 하지만 메인보드에 저장되는 BIOS/ UEFI는 멀쩡하게 살아 있기 때문에 OS를 재설치하면 다시 사용 가능하다.

이 명령줄을 메모장이나 포털사이트 검색창, 채팅창 등 다른 텍스트 폼에 입력하는 것은 아무런 문제가 없지만, 시작 - 실행 - 해당 명령 입력 후 엔터 키를 누르면 명령 프롬프트가 가동되면서 C 드라이브에 저장된 모든 사용자 데이터와 중요 프로그램, 그리고 커널까지 전부 삭제한다.[3] 이제 실행이 끝나고 재부팅하면 다시 살아나지 못하는 컴퓨터를 볼 수 있다. 이는 Windows NT 4.0부터 Windows 11( 2022)까지 전부 해당된다. 2000은 까만 화면만 지속되고, NT 4.0은 <A kernel file is missing. Press ctrl+alt+del to restart.>라는 오류를 뿜어낸다. 2000이 NT 5.0으로 개발되고 있었던 것으로 보아, Windows NT 커널도 예외가 없다. 그리고 이 명령어는 Windows NT 3.1도 적용된다. Windows NT 3.1은 /q 옵션 스위치가 없어서 rd /s C:\\로 하면 된다. Windows XP는 인식되지 않은 운영 체제라고 뜨며 재부팅 시 검은 화면만 나온다.

해당 디스크에 중요 파일이 있다거나, 계속 써야 하는 운영 체제가 있다면 절대 실행시켜서는 안 되는 명령어이다. 그래도 호기심에 정말로 한 번 해보고 싶다면 가상머신에서 윈도우를 깔고 해 보거나 정말로 더 이상 쓸 일이 없어 폐기 처분할 예정인 컴퓨터에 실행해야 한다.[4] 유튜브에서는 일본에서 실제로 실행해 보는 동영상이 많다.[5] 또한 C 드라이브가 아니더라도 작은 실험용 폴더를 만들거나 거의 안 쓰는 USB 드라이브를 이용해 소규모로 행해보는 것도 가능하다. 이는 C 드라이브 전체가 아닌 실험용 폴더에만 국한되므로 안전하다. 명령어는 RD(실험용폴더 이름 및 경로) /S /Q(예: RD C:\Example /S /Q)이다.

또한 위 명령어를 메모장에 입력 후 배치 파일(*.bat)로 저장하고 *.exe 실행 파일로 변환한 뒤, 아이콘도 그럴싸하게 바꾸고 각종 키젠이나 초딩들이 속기 쉬운 프로그램으로 위장시키거나, 프로그램 파일 폴더 내 다른 프로그램인 것처럼 속인 뒤 유포하는 경우가 많아졌다. 해당 구문이 굳이 cmd 부터 시작하는 것을 보면 바로가기 낚시를 염두에 두고 만들어진 듯 하기는 하다. shutdown 구문보다도 뒷감당이 안 될 정도의 스케일이기에 실제로 누가 이렇게 써보기나 했을까 싶지만 정상적인 윈도우 명령어 중 하나이기 때문에 백신에서도 감지하지 않아 더욱 위험하다. 사실 게임 실행 파일의 경우, 아무런 DLL 파일이나 리소스 파일도 없이 실행 파일만 딸랑 있는 경우 의심해보아야 한다.[6] 하지만 요즘 백신들은 탐지를 한다. 카스퍼스키, 안랩[7]에서 탐지를 하는 것이 확인되었다.[8]

2. 해석

"cmd /c"는 명령 프롬프트(cmd.exe)를 실행하고 뒤에 나오는 문자열을 받아 처리한다는 의미로, 명령 프롬프트를 실행한 다음 rd부터 입력해도 같은 결과가 나온다. c:는 알다시피 C 드라이브 루트를 의미하며, rd는 Remove Directory의 약자로 폴더를 삭제하겠다는 명령어이다. 즉, 파일을 삭제하는 del 명령어와는 다르다. 기본적으로 폴더 삭제는 폴더 내에 다른 파일이나 폴더가 존재할 경우에는 불가능하다. 하지만 /s 명령어가 붙어있으면 폴더 내의 하위 폴더 및 파일을 전부 삭제한다. 마지막으로 /q 명령어는 Quiet 명령어로, 화면에 메시지를 보여주지 않는다. 그러니까 "정말로 삭제하시겠습니까?(Y/N)"라는 확인을 하지 않는다. 만일 /q 옵션을 넣지 않는다면 일일이 확인 절차를 거치는데, C 드라이브에는 당연히 파일과 폴더가 매우 많기 때문에 손이 고생하게 된다.

정리하면 다음과 같다.
명령어 의미
cmd cmd.exe를 실행
/c[9] 다음 문자열을 받아 실행할 것
rd[10] 폴더를 삭제할 것
/s 하위 폴더와 파일들을 전부
/q[11] 경고 없이
c:\\[12] C 드라이브 루트에서
cmd /c rd /s /q c:\\ cmd 환경에서 C 드라이브의 모든 하위 폴더와 파일들을 경고 없이 삭제할 것
즉, "C 드라이브의 모든 하위 폴더와 파일들을 경고 없이 삭제하라"고 해석할 수 있다. 여기서 c:\\ 부분을 다른 경로로 지정하면 해당하는 경로에서 같은 작업을 한다. 예를 들어 d:\\로 하면 D 드라이브에 있는 파일을 삭제한다.

아무런 피해 없이 직접 해 보고 싶다면 VMware와 같은 가상머신을 사용해야 한다. 개인 사용자에게 무료로 제공되는 것들(VMware Player 등)이 있으니 윈도우 설치를 할 수 있다면 부담없이 체험해 볼 수 있다. 유튜브에 검색을 해 보면 이 명령어를 실행했을 때 무슨 일이 벌어지는지 윈도우 버전별로 영상을 많이 찾을 수 있다. 저 명령어를 실제 호스트에서 단 1초 정도만 실행해도 많은 파일들이 삭제되므로 실수로라도 자신의 저장매체 안에 있는 모든 파일이 날아가는 꼴을 보고 싶지 않다면 호스트에서 직접 입력하는 짓은 절대 하면 안 된다.

요약하면, 윈도우 키+R을 눌러 실행 창이 뜬 상태에서는 cmd /c rd c: /s /q를 입력하면 되며 명령 프롬프트 내에선 rd c: /s /q만 입력해도 된다.

Windows 10에서는 시작 메뉴에 검색 및 실행 기능까지 포함하고 있으므로 윈도우 키를 눌러 시작 메뉴를 띄운 상태에서 cmd /c rd /s /q C:\를 입력해도 된다.

3. 만약 다른 사람 컴퓨터에 입력한다면

무단으로 남의 PC PC방, 도서관, 학교 등에 설치된 공용 컴퓨터나 회사나 기업체, 가게, 관공서 공공기관 등의 업무용 컴퓨터에 이 명령어를 입력한 경우 손괴죄가 성립되어 형사처벌을 받게 된다. 추가로 불법행위로 인한 손해배상을 해야 하는 것은 덤이다. 재부팅을 할 때 자동 복구가 되는 경우 상관없을 수도 있겠지만, 다른 사람이 볼 때는 누가 봐도 사보타주로 보일 수밖에 없다. 이 명령어를 실행하는 과정에서 자동 복구 프로그램을 실행하는 데에 필요한 파일들까지 삭제되어 버린다면 반론의 여지가 없다. 또한 근처에 CCTV 등이 구축되어 있다면 영상 기록이 결정적인 증거로 남게 된다.

4. 기타

이 명령어가 얼마나 위험하냐면 과거에 절대로 검색해서는 안 될 검색어에서 무려 위험도 6을 받았었다!![13] 그러나 이게 검색어가 아니고 명령어다 보니까 후에 절검단에서 퇴출되었다.

진상이 어느 정도 알려지기 전엔 네이버 지식iN이나 블로그에 소개하기를 "이 커맨드를 쓴다면 컴퓨터가 빨라진다"라거나 " 컴퓨터 바이러스가 박멸된다"라는 헛소문을 퍼뜨리는 악질 인간들이 있었다. 둘 다 틀린 말은 아니다. 처리할 리소스가 급감하니 속도는 빨라질 것이고 드라이브의 파일을 싹 다 지우면 바이러스도 당연히 박멸하겠지만, 정작 가장 중요한 운영 체제 동귀어진하므로 멘탈이 아주 허망해질 것이다. 이에 낚여서 피해를 호소하고 복구 방법을 묻는 글도 한때 올라온 적이 있다. 사실 100% 확실하게 박멸시키는 것도 아니다. 바이러스가 CMD를 덮어씌우거나 C 이외의 다른 드라이브에도 있다면 포맷 이후에도 바이러스가 남을 수 있다. 바이러스를 지우기 위해 포맷을 한다면 명령 프롬프트나 윈도우 복구 기능을 이용하지 말고 윈도우를 안전 모드로 실행하거나 그게 안 된다면 설치 USB를 이용해 부팅 · 포맷 후 클린 설치해야 안전하다. 그냥 디스크를 새로 사서 거기에 설치하면 된다.

rm -rf /보다는 파급력이 그나마 적은데, 길이가 길어서 기억하기 어려운 것도 있고, 보조 기억장치를 연결하는 방법에 차이가 있기 때문이다. 유닉스 계열 OS는 보조 기억장치를 모두 디렉토리(폴더)처럼 처리하여 최상위 디렉토리 밑에 붙이는 마운트 기능을 쓰지만, 윈도우는 보조 기억장치에 C, D 같은 알파벳 문자를 배당하는 드라이브 문자를 써서 개념적으로 완전히 별개의 장치로 분리한다. 따라서 rm -rf /는 컴퓨터에 연결된 모든 보조 기억장치까지 싹 날리지만 cmd /c rd /s /q c:\는 C 드라이브 이외의 보조 기억장치를 삭제하지 않는다. 유닉스 계열에서 드라이브 하나만 삭제하려면 /volume/드라이브 이름을 입력하면 된다.

DOS나 9x 계열의 윈도우에서는 이 명령어가 먹히지 않는다. rd 명령어에 /s 옵션이 없기 때문이다. 대신 deltree(RD /S와 비슷한 명령어) 명령어를 이용해서 deltree /y C:\를 쓰는 방법이 있다. 이 방법은 MS-DOS의 내장 유틸리티를 사용하기 때문에 deltree.exe 파일이 있어야 한다. 또한 MS-DOS 6.0에서 추가된 명령이라 그 이전 버전에서는 방법이 없다.

C 파티션이든 D 파티션이든 해당 파티션에 있는 파일들을 전부 지우려면 DOS나 9x 계열의 윈도우를 제외하면 그냥 실행시켜서는 먹히지도 않으므로 비스타(2008) 이후의 윈도우들은 반드시 관리자 권한으로 실행해야 하고, NT 3.1 부터 XP(2003/R2) 까지의 윈도우들은 관리자 계정으로 로그온을 한 다음에 실행해야 한다. 관리자 계정으로 로그온한 이후 부터는 응용 프로그램을 그냥 실행하는 것 만으로도 관리자 권한으로 실행되기 때문이다.

powershell -WindowStyle Hidden -command "rmdir -Path \\\\localhost\\C$\\* -Force -Recurse" 와 같이 더욱 악랄한 명령어가 존재한다. 이 명령어는 파워쉘을 이용하여 WindowStyle을 Hidden(숨김)으로 바꾸고 rmdir -Path \\\\localhost\\C$\\* -Force -Recurse라는 명령어를 실행한다. 먼저 rmdir는 cmd의 rd와 같고 rd와 같이 널리 알려진 명령어가 아니라 눈속임을 할 수 있으며, -Path는 경로를 의미하고 \\\\localhost\\C$\\*을 지운다. 여기서 \\\\localhost\\C$\\는 이 컴퓨터에 네트워크로 연결된 C 드라이브이기 때문에 그냥 C 드라이브와 다를 게 없다. 뒤의 -Force -Recurse는 순서대로 강제 삭제, 폴더 내의 모든 폴더와 파일들을 삭제한다.

일부 프로그램에서는 디버깅 중이면 'echo y | del *.* /s /q /f'를 실행하는 경우가 있다. 이것도 모든 파일이 초기화된다.

관리자 권한이 없이 실행하면 프로그램과 윈도우의 일부만 지워지기만 한다.

배리에이션으로 del /s /q c:\도 있다. 유닉스 계열 OS에는 rm -rf /가 있다.


[1] 여기선 아예 안 켜지는 게 아니라 윈도우 로드 실패(블루스크린 등) 을 말하는 것이다. 구조 상 루트 아래에 마운트되어 쓰기 가능한 다른 드라이브의 데이터까지 삭제되어버리는 UNIX 계열의 rm -rf /와는 달리 이 명령어는 C드라이브만 지워지게 된다. 따라서 만약 D 드라이브 등의 별도로 만든 파티션이 존재한다면 문서 제목에 써있는 명령 외에 별도로 다른 명령을 내렸던 게 아닌 한 (예 : cmd /c rd /s /q d:\\) 해당 파티션은 살아있으니 참조. [2] 사실 켜지는 상황이더라도 Windows 재설치를 권장, 또는 최소한 시스템 무결성 검사(Windows 오류 복구에 만만하게 써볼 수 있는 DISM, SFC 명령어 등)를 해 보는 것이 좋다. 시스템에 필요한 파일이지만 보호가 적용되지 않거나 당시 사용 중(Lock)이지 않았던 이유로 인해 삭제되어버린 시스템 파일도 많을 것이며 이는 운영체제 구동에 불안정함을 초래하게 된다. [3] 사람및 동물로치면 몸에 있는 장기들을 하나씩 빼가면서 죽어가는 것이랑 다름없다. [4] 소프트웨어 및 파일이 날아가는 거지 하드웨어를 고장내는 명령어는 아니므로, 데이터를 백업 후 포맷할 예정이거나 사용하지 않는 디스크에서 실행하는 것은 상관없다. [5] 유튜브 영상 [6] 다만 프로그램 링킹 방법 중 하나인 Static Linking(라이브러리를 실행 파일 하나에 모두 포함하는 링킹 방식, 즉 실행에 DLL을 요구하지 않는다.)을 프로그램이 사용했을 경우도 있으니 DLL 파일이 없다고 바로 의심을 하지 말고 리소스 파일부터 찾아보자. [7] 하지만 앞에 cmd /c를 붙히지 않으면 인식을 못한다그럼 의미가 있나 [8] 그러나 탐지한다고 해도, cmd /c rd /s /q %SystemDrive%와 같이 명령어를 비틀면 탐지하지 못하는 경우가 많다. [9] 정확히는 이후의 명령을 실행한 후 cmd.exe는 종료된다. 명령 프롬프트 창이 남아있게 하려면 /k를 쓰면 된다. [10] remove directory의 약자다. 데이터를 전부 지우는 것. [11] quietly의 약자로 경고 없이 조용히 실행시킨다는 것을 의미한다. [12] 백슬래시 문자(U+005C)다. 일부 한국이나 일본 서체에서는 백슬래시 문자가 화폐 기호인 ¥, ₩으로 나오니 유의해야 한다. [13] 위험도 6이 어느 정도냐면, 검색하면 전자 기기에 문제가 생길 수 있을 정도다.