Windows에서 파일이나 폴더를 삭제하려는데 갑자기 삭제되지 않는 경우가 있습니다.
휴지통으로 보내려고 해도 오류가 나타나거나 다음과 같은 메시지를 볼 수 있습니다.
파일이 다른 프로그램에서 열려 있으므로 작업을 완료할 수 없습니다.
액세스가 거부되었습니다.
이 항목을 찾을 수 없습니다.
폴더가 비어 있지 않습니다.
이런 문제가 발생하면 가장 먼저 컴퓨터를 재부팅하거나 파일 이름을 바꿔보는 경우가 많습니다.
물론 재부팅으로 해결되는 경우도 있지만, Windows CMD를 이용하면 파일이나 폴더가 왜 삭제되지 않는지 확인하고 필요한 경우 직접 삭제할 수도 있습니다.
다만 파일 삭제 명령어는 실행 즉시 데이터를 제거할 수 있기 때문에 다른 CMD 명령어보다 훨씬 신중하게 사용해야 합니다.
특히 del, rmdir /s 같은 명령어는 휴지통을 거치지 않고 파일을 삭제할 수 있으므로 삭제할 경로를 정확하게 확인한 뒤 사용해야 합니다.
이번 글에서는 실제로 “삭제되지 않는 파일이나 폴더”가 있다고 가정하고 CMD에서 경로를 확인하는 방법부터 파일 삭제, 폴더 삭제, 공백이 포함된 경로 처리, 액세스 거부 문제, 다른 프로그램이 사용 중인 경우까지 단계적으로 알아보겠습니다.
파일이 삭제되지 않는 이유는 무엇일까?
파일이 삭제되지 않는 원인은 하나가 아닙니다.
대표적으로 다음과 같은 상황이 있습니다.
다른 프로그램이 파일을 사용하고 있는 경우
문서, 영상, 압축 파일 등이 다른 프로그램에서 열려 있으면 Windows가 삭제를 막을 수 있습니다.
권한이 부족한 경우
현재 사용자에게 해당 파일이나 폴더를 삭제할 권한이 없을 수 있습니다.
시스템 또는 보호된 파일인 경우
Windows나 다른 프로그램에서 사용하는 중요한 파일일 수 있습니다.
파일 경로나 이름에 문제가 있는 경우
경로가 너무 길거나 특수한 파일 이름 때문에 탐색기에서 정상적으로 처리되지 않는 경우가 있습니다.
읽기 전용 또는 기타 속성이 설정된 경우
파일 속성에 따라 일반적인 삭제 과정에서 문제가 발생할 수 있습니다.
따라서 삭제되지 않는다고 바로 강제 삭제부터 시도하는 것보다 왜 삭제가 안 되는지 먼저 확인하는 것이 중요합니다.
1단계: 삭제할 파일의 정확한 경로 확인하기
CMD에서 파일을 삭제하려면 먼저 정확한 파일 경로를 알아야 합니다.
예를 들어 바탕 화면에 다음 파일이 있다고 가정하겠습니다.
test.txt
실제 경로는 사용자 환경에 따라 다음과 비슷할 수 있습니다.
C:\Users\User\Desktop\test.txt
CMD에서는 경로를 정확하게 입력해야 합니다.
특히 다른 파일을 실수로 삭제하지 않도록 탐색기에서 파일 위치를 먼저 확인하는 것이 좋습니다.
파일을 선택한 뒤 속성 또는 주소 표시줄을 이용해 폴더 경로를 확인할 수 있습니다.
2단계: CMD에서 해당 폴더로 이동하기
CMD를 실행합니다.
Windows 검색창에서:
cmd
를 입력한 뒤 명령 프롬프트를 실행합니다.
이제 삭제할 파일이 있는 폴더로 이동합니다.
예를 들어 바탕 화면이라면 다음과 같이 사용할 수 있습니다.
cd "%USERPROFILE%\Desktop"
여기서 cd는 현재 작업 폴더를 변경하는 명령어입니다.
정상적으로 이동했는지 확인하려면:
dir
을 입력합니다.
현재 폴더의 파일과 폴더 목록이 표시됩니다.
삭제하려는 파일 이름이 실제로 목록에 있는지 확인합니다.
이 과정을 거치는 이유는 간단합니다.
삭제 명령어를 실행하기 전에 현재 위치와 대상 파일을 다시 확인하기 위해서입니다.
3단계: del 명령어로 파일 삭제하기
삭제할 파일이 test.txt라는 것을 확인했다고 가정하겠습니다.
다음 명령어를 사용할 수 있습니다.
del test.txt
또는 전체 경로를 직접 지정할 수도 있습니다.
del "C:\Users\User\Desktop\test.txt"
파일 경로에 공백이 포함될 가능성이 있다면 따옴표로 감싸는 습관을 들이는 것이 좋습니다.
예를 들어:
del "C:\Users\User\Desktop\새 문서.txt"
처럼 사용합니다.
중요한 점은 CMD의 del 명령어로 삭제한 파일은 일반적인 탐색기 삭제처럼 반드시 휴지통으로 이동하는 방식이 아닐 수 있다는 것입니다.
따라서 삭제할 파일이 정확한지 다시 확인한 뒤 실행해야 합니다.
4단계: 파일 이름에 공백이 있을 때
다음과 같은 파일이 있다고 가정하겠습니다.
old file.txt
이 파일을 다음처럼 입력하면:
del old file.txt
CMD가 old, file.txt를 각각 다른 요소로 해석할 수 있어 원하는 결과가 나오지 않을 수 있습니다.
따라서 전체 파일 이름을 따옴표로 감쌉니다.
del "old file.txt"
전체 경로라면:
del "C:\Users\User\Desktop\old file.txt"
처럼 사용합니다.
CMD에서 경로에 공백이 있다면 따옴표를 사용한다는 원칙을 기억하면 여러 명령어에서 도움이 됩니다.
5단계: 폴더를 삭제하려면 rmdir 사용하기
파일이 아니라 폴더를 삭제하려면 rmdir 또는 rd 명령어를 사용할 수 있습니다.
예를 들어 현재 폴더에 oldfolder라는 빈 폴더가 있다고 가정하겠습니다.
다음과 같이 입력합니다.
rmdir oldfolder
또는:
rd oldfolder
둘 다 폴더를 제거하는 데 사용할 수 있습니다.
하지만 기본 rmdir은 일반적으로 폴더 안에 파일이나 하위 폴더가 남아 있으면 삭제되지 않습니다.
이때 다음과 같은 메시지를 볼 수 있습니다.
디렉터리가 비어 있지 않습니다.
6단계: 폴더가 비어 있지 않을 때 /s 옵션
폴더 안에 파일과 하위 폴더가 들어 있는데 전체 폴더를 삭제해야 하는 상황에서는 /s 옵션을 사용할 수 있습니다.
예를 들어:
rmdir /s "C:\Temp\oldfolder"
처럼 사용할 수 있습니다.
명령을 실행하면 폴더와 그 안의 내용까지 삭제할 것인지 확인하는 메시지가 나타날 수 있습니다.
여기서 반드시 주의해야 합니다.
/s는 폴더 내부의 파일과 하위 폴더까지 함께 삭제하는 옵션입니다.
경로를 잘못 입력하면 원하지 않는 많은 파일을 한꺼번에 삭제할 수 있습니다.
따라서 실행하기 전에:
dir "C:\Temp\oldfolder"
등으로 폴더 안에 어떤 파일이 있는지 먼저 확인하는 것이 좋습니다.
/q 옵션은 왜 조심해야 할까?
다음과 같은 명령어를 인터넷에서 쉽게 볼 수 있습니다.
rmdir /s /q "C:\Temp\oldfolder"
여기에서 /q는 Quiet 모드와 관련된 옵션으로, 삭제 과정의 확인 질문을 줄이는 데 사용될 수 있습니다.
문제는 이 방식이 실수를 발견할 기회도 줄인다는 점입니다.
특히 초보자라면 /s /q를 습관적으로 사용하지 않는 것이 좋습니다.
폴더 안의 내용까지 삭제해야 한다면 먼저 /s만 이용하고 실제 대상이 맞는지 확인하는 편이 안전합니다.
빠르게 삭제하는 것보다 잘못 삭제하지 않는 것이 훨씬 중요합니다.
실제 상황 1: “파일이 다른 프로그램에서 열려 있습니다”
삭제하려는 파일이 다른 프로그램에서 사용 중이라면 CMD의 del 명령어를 실행해도 삭제되지 않을 수 있습니다.
예를 들어 video.mp4를 동영상 플레이어에서 열어둔 상태라고 가정하겠습니다.
이 경우 먼저 해당 프로그램을 정상적으로 종료합니다.
그 후 다시:
del "video.mp4"
를 실행합니다.
프로그램 창을 닫았는데도 삭제되지 않는다면 관련 프로세스가 백그라운드에 남아 있는지 확인할 수 있습니다.
앞서 살펴본:
tasklist
명령어를 이용해 프로세스를 확인할 수 있습니다.
하지만 어떤 프로세스가 파일을 사용하고 있는지 확실하지 않은 상태에서 여러 프로세스를 무작정 종료하는 것은 권장하지 않습니다.
실제 상황 2: 프로그램을 닫았는데 여전히 삭제되지 않는다
프로그램을 종료했는데도 Windows가 파일이 사용 중이라고 표시하는 경우가 있습니다.
프로그램 프로세스가 완전히 종료되지 않았을 수 있습니다.
먼저:
tasklist
를 실행합니다.
프로그램의 실제 실행 파일 이름을 알고 있다면:
tasklist | findstr 프로그램이름
으로 검색할 수 있습니다.
예를 들어 example.exe라는 프로세스가 남아 있는 것을 확인했다고 가정합니다.
해당 프로그램이 자신이 종료해도 되는 프로세스라는 사실이 확실하다면 정상 종료를 먼저 시도합니다.
필요하다면 이전 글에서 살펴본:
taskkill /PID 번호
방식을 이용할 수도 있습니다.
프로세스를 종료한 뒤 다시 파일 삭제를 시도합니다.
이 흐름은 단순히 파일을 강제로 삭제하는 것보다 파일을 잡고 있는 프로그램부터 정상적으로 정리한다는 점에서 더 안전합니다.
실제 상황 3: 액세스가 거부되었습니다
del 또는 rmdir을 실행했는데 다음과 같은 메시지가 나타날 수 있습니다.
액세스가 거부되었습니다.
이 경우 원인이 여러 가지일 수 있습니다.
현재 사용자에게 파일 삭제 권한이 없거나 해당 파일이 높은 권한을 요구하는 위치에 있을 수 있습니다.
자신이 직접 만든 파일이고 삭제해도 되는 대상이라는 것이 확실하다면 관리자 권한 CMD가 필요한지 확인할 수 있습니다.
Windows 검색창에서:
cmd
를 검색한 뒤 관리자 권한으로 실행을 선택합니다.
그다음 파일 경로를 다시 정확하게 확인합니다.
하지만 Windows 시스템 폴더에 있는 파일에서 액세스 거부가 발생한다면 무조건 관리자 권한으로 삭제하려고 해서는 안 됩니다.
Windows가 보호하는 파일일 수 있기 때문입니다.
Windows 폴더의 파일은 함부로 삭제하지 않는다
다음과 같은 경로에 있는 파일은 특히 주의해야 합니다.
C:\Windows
C:\Windows\System32
C:\Program Files
이런 위치에는 Windows나 설치된 프로그램이 사용하는 중요한 파일이 존재할 수 있습니다.
파일 이름을 모른다는 이유로 불필요한 파일이라고 판단해서는 안 됩니다.
특히 인터넷에서:
del /f
rmdir /s /q
같은 명령어를 복사해 시스템 폴더에 사용하는 것은 매우 위험합니다.
삭제 전에 파일의 역할과 프로그램과의 관계를 먼저 확인해야 합니다.
읽기 전용 파일은 어떻게 확인할까?
파일 속성 때문에 삭제 과정에서 문제가 의심되는 경우 attrib 명령어를 이용해 속성을 확인할 수 있습니다.
예를 들어:
attrib "test.txt"
를 실행합니다.
파일에 설정된 속성 정보가 표시될 수 있습니다.
읽기 전용 속성이 있는 경우 R과 관련된 표시를 볼 수 있습니다.
필요한 상황에서는 다음과 같이 읽기 전용 속성을 제거할 수 있습니다.
attrib -r "test.txt"
그 후 다시:
del "test.txt"
를 시도할 수 있습니다.
하지만 파일 속성을 변경하기 전에 해당 파일이 왜 읽기 전용으로 설정되어 있는지도 생각해보는 것이 좋습니다.
del /f 옵션은 무엇일까?
del 명령어에는 /f 옵션도 있습니다.
예를 들어:
del /f "test.txt"
처럼 사용할 수 있습니다.
/f는 읽기 전용 파일 등의 삭제를 강제로 시도하는 데 사용될 수 있습니다.
하지만 /f가 붙었다고 해서 모든 삭제 문제를 해결하는 것은 아닙니다.
파일이 다른 프로그램에서 사용 중이거나 권한 문제, 시스템 보호 등의 원인이 있다면 여전히 삭제되지 않을 수 있습니다.
따라서:
del 실패 → 무조건 /f
라는 방식으로 접근하는 것은 좋지 않습니다.
먼저 오류 메시지를 확인해야 합니다.
“파일을 찾을 수 없습니다” 그런데 탐색기에는 보이는 경우
가끔 탐색기에서는 파일이 보이는데 CMD에서 찾을 수 없거나 반대 상황이 발생할 수 있습니다.
이 경우 먼저 현재 경로가 정확한지 확인합니다.
cd
또는:
dir
을 이용합니다.
특히 확장자가 숨겨져 있는 경우 실제 파일 이름이 생각과 다를 수 있습니다.
예를 들어 화면에서는:
test
라고 보이지만 실제 파일 이름은:
test.txt
일 수 있습니다.
CMD에서:
dir
을 실행하면 실제 파일 이름을 확인하는 데 도움이 됩니다.
경로가 너무 긴 파일은 어떻게 할까?
폴더가 여러 단계로 깊게 중첩되어 있으면 파일 경로가 매우 길어질 수 있습니다.
이런 경우 탐색기나 일부 프로그램에서 파일 처리에 문제가 생길 수 있습니다.
먼저 상위 폴더의 이름을 짧게 바꾸거나 파일을 더 짧은 경로로 이동할 수 있는지 확인합니다.
예를 들어:
C:\Users\User\Desktop\very-long-folder-name\...
처럼 복잡한 경로보다:
C:\Temp
같은 짧은 위치로 이동한 뒤 작업하는 방법을 검토할 수 있습니다.
다만 중요한 시스템 파일이나 프로그램 설치 폴더를 임의로 이동해서는 안 됩니다.
삭제 전에 dir로 한 번 더 확인하는 습관
CMD 삭제 명령어에서 가장 중요한 습관 중 하나입니다.
예를 들어 다음 폴더를 삭제하려고 합니다.
C:\Temp\oldfolder
바로:
rmdir /s "C:\Temp\oldfolder"
를 입력하지 말고 먼저:
dir "C:\Temp\oldfolder"
를 실행합니다.
안에 어떤 파일이 있는지 확인합니다.
삭제해도 되는 내용이 맞는지 확인한 뒤 명령어를 실행합니다.
파일 하나라면:
dir "C:\Temp\oldfolder\test.txt"
처럼 대상이 실제 존재하는지도 확인할 수 있습니다.
이 작은 확인 단계가 잘못된 삭제 사고를 막아줄 수 있습니다.
와일드카드 * 사용은 특히 조심해야 한다
CMD에서 *는 여러 파일을 한꺼번에 지정할 때 사용될 수 있습니다.
예를 들어:
del *.txt
는 현재 폴더의 여러 .txt 파일을 대상으로 할 수 있습니다.
편리하지만 위험할 수도 있습니다.
특히 다음처럼 범위가 매우 넓은 명령어는 신중해야 합니다.
del *.*
현재 폴더의 많은 파일이 영향을 받을 수 있습니다.
따라서 삭제 문제가 발생한 특정 파일 하나를 해결하려는 상황에서는 와일드카드를 사용하는 것보다 정확한 파일 이름을 직접 지정하는 방식이 안전합니다.
삭제 후 파일이 정말 사라졌는지 확인하기
파일 삭제 명령어를 실행한 뒤 결과가 아무것도 표시되지 않는 경우도 있습니다.
이때 실제로 삭제되었는지 확인하려면:
dir
을 다시 실행합니다.
특정 파일만 확인하려면:
dir "test.txt"
를 입력할 수 있습니다.
파일을 찾을 수 없다는 결과가 나온다면 해당 경로에서는 더 이상 파일이 보이지 않는 것을 확인할 수 있습니다.
폴더라면 상위 폴더에서:
dir
을 실행해 해당 폴더가 사라졌는지 확인합니다.
즉, 이전 글들과 마찬가지로 명령 실행 후 결과를 다시 확인하는 과정이 중요합니다.
재부팅하면 삭제되는 이유
다른 프로그램이 파일을 사용하고 있는 경우 PC를 재부팅하면 관련 프로그램과 프로세스가 종료됩니다.
그 결과 파일에 걸려 있던 사용 상태가 해제되면서 삭제가 가능해질 수 있습니다.
그래서 재부팅은 실제로 효과적인 해결 방법 중 하나입니다.
하지만 재부팅하기 전에 어떤 프로그램이 파일을 사용하고 있었는지 확인해두면 같은 문제가 다시 발생했을 때 훨씬 쉽게 해결할 수 있습니다.
특히 특정 프로그램을 사용할 때마다 같은 파일이 잠기는 상황이라면 프로그램 설정이나 동작 방식을 추가로 확인하는 것이 좋습니다.
파일 삭제가 반복적으로 실패하면 저장장치 문제일 수도 있을까?
가능성은 있습니다.
파일 하나가 프로그램 때문에 삭제되지 않는 것과 여러 파일에서 반복적으로 읽기·쓰기·삭제 오류가 발생하는 것은 상황이 다릅니다.
다음과 같은 문제가 반복된다면 파일 하나의 잠금 문제 외에도 파일 시스템이나 저장장치 상태를 확인할 필요가 있을 수 있습니다.
파일을 열 수 없음
복사가 반복적으로 실패
폴더 접근 오류
파일 이름이 이상하게 표시됨
여러 위치에서 삭제 오류 반복
이 경우 앞에서 살펴본 chkdsk 같은 파일 시스템 검사 도구가 필요한 상황인지 검토할 수 있습니다.
다만 저장장치 자체의 물리적 고장이 의심된다면 중요한 데이터의 백업을 우선적으로 고려해야 합니다.
파일과 폴더 삭제 명령어 차이 정리
파일 삭제:
del "파일경로"
예:
del "C:\Temp\test.txt"
빈 폴더 삭제:
rmdir "폴더경로"
예:
rmdir "C:\Temp\oldfolder"
내용이 있는 폴더 전체 삭제:
rmdir /s "C:\Temp\oldfolder"
읽기 전용 파일 강제 삭제를 검토하는 경우:
del /f "파일경로"
파일 속성 확인:
attrib "파일경로"
읽기 전용 속성 제거:
attrib -r "파일경로"
명령어 자체보다 정확한 경로와 삭제 대상 확인이 훨씬 중요합니다.
CMD에서 파일 삭제할 때 가장 흔한 실수
첫 번째는 현재 폴더를 확인하지 않고 del을 실행하는 것입니다.
먼저 cd와 dir을 이용해 현재 위치를 확인합니다.
두 번째는 공백이 있는 경로에 따옴표를 사용하지 않는 것입니다.
파일 경로 전체를 " "로 감싸는 것이 좋습니다.
세 번째는 rmdir /s /q를 처음부터 사용하는 것입니다.
확인 과정 없이 폴더 전체가 삭제될 수 있으므로 특히 주의해야 합니다.
네 번째는 Windows 시스템 파일을 불필요한 파일이라고 판단하는 것입니다.
정체를 모르는 시스템 파일은 삭제하지 않습니다.
다섯 번째는 다른 프로그램이 파일을 사용 중인데 del만 계속 반복하는 것입니다.
먼저 파일을 사용하고 있는 프로그램을 종료해야 합니다.
여섯 번째는 삭제 후 결과를 확인하지 않는 것입니다.
dir을 이용해 실제 삭제 여부를 확인합니다.
삭제되지 않는 파일 문제 해결 순서
실제 문제에서는 다음 순서대로 진행하면 됩니다.
1. 프로그램에서 파일이 열려 있는지 확인
사용 중이라면 정상적으로 닫습니다.
2. 파일 경로 확인
삭제 대상이 맞는지 확인합니다.
3. CMD에서 폴더 이동
cd "폴더경로"
4. 파일 존재 여부 확인
dir
5. 일반적인 파일 삭제 시도
del "파일이름"
6. 폴더라면 rmdir 사용
rmdir "폴더이름"
7. 폴더 안에 내용이 있고 정말 전체 삭제가 필요한 경우
rmdir /s "폴더이름"
8. 오류 메시지 확인
액세스 거부인지 파일 사용 중인지 원인을 확인합니다.
9. 필요하다면 관련 프로그램 프로세스 확인
tasklist
10. 삭제 후 재확인
dir
이 흐름을 사용하면 처음부터 강한 삭제 옵션을 사용하는 것보다 안전하게 문제를 해결할 수 있습니다.
22번 프로세스 종료 글과 연결되는 이유
앞선 글에서는 프로그램이 멈췄을 때:
tasklist
로 프로세스를 확인하고:
taskkill /PID 번호
를 이용해 필요한 프로세스를 종료하는 방법을 살펴봤습니다.
이번 문제에서도 파일 삭제가 되지 않는 원인이 다른 프로그램이 파일을 사용하고 있는 것이라면 해당 방법이 활용될 수 있습니다.
하지만 이번 글의 목적은 프로그램 종료가 아닙니다.
삭제되지 않는 파일 또는 폴더를 안전하게 처리하는 것이 핵심입니다.
따라서 먼저 프로그램을 정상적으로 종료하고 그다음 파일을 삭제하는 순서로 접근하는 것이 좋습니다.
마무리
Windows에서 파일이나 폴더가 삭제되지 않는다고 무조건 강제 삭제 명령어부터 사용할 필요는 없습니다.
가장 먼저 다른 프로그램이 해당 파일을 사용하고 있는지 확인합니다.
프로그램이 열려 있다면 정상적으로 종료합니다.
그다음 CMD에서 파일이 있는 폴더로 이동합니다.
cd "폴더경로"
현재 파일을 확인합니다.
dir
삭제할 파일이 정확한 것을 확인한 뒤:
del "파일이름"
을 사용할 수 있습니다.
폴더라면:
rmdir "폴더이름"
을 사용합니다.
내용이 있는 폴더 전체를 정말 삭제해야 한다면:
rmdir /s "폴더이름"
을 사용할 수 있지만 폴더 내부의 파일까지 함께 삭제될 수 있으므로 반드시 경로와 내용을 먼저 확인해야 합니다.
특히 /s /q처럼 확인 절차까지 줄이는 옵션을 처음부터 사용하는 것은 권장하지 않습니다.
그리고 액세스가 거부되거나 다른 프로그램이 파일을 사용하고 있다면 삭제 명령어를 반복하는 것보다 오류의 원인을 먼저 해결해야 합니다.
결국 CMD에서 파일 삭제 문제를 해결하는 핵심은 다음과 같습니다.
파일 위치 확인 → 사용 중인지 확인 → 일반 삭제 시도 → 오류 원인 확인 → 필요한 경우에만 추가 조치 → 삭제 여부 재확인
이 순서를 익혀두면 탐색기에서 파일이나 폴더가 삭제되지 않을 때 무조건 재부팅하거나 위험한 강제 삭제 명령어를 복사하는 대신, 문제가 발생한 이유를 확인하면서 필요한 파일만 안전하게 처리할 수 있습니다.