Windows 11에서 Claude Console이 만든 삭제할 수 없는 “nul” 파일 삭제 방법

발행: (2025년 12월 30일 오전 08:53 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

삭제할 수 없는 “nul” 파일의 미스터리

Windows 11에서 Claude Console이나 Claude CLI 도구를 사용해 본 적이 있다면, 디렉터리 안에 nul이라는 파일이 나타나면서 삭제가 되지 않는 짜증나는 버그를 경험했을 수도 있습니다. UI에서 삭제해도 아무 일도 일어나지 않으며, 명령줄에서 del nul을 실행하면 오류가 반환됩니다.

Windows에서는 NUL이 예약된 시스템 이름입니다. 일반 파일이 아니라 데이터를 버리는 가상 장치(운영체제의 “블랙홀”) 역할을 합니다. Claude Console과 같은 도구가 “null”로 출력을 리다이렉트하려고 할 때 구문이 Windows의 기대와 맞지 않으면 시스템이 실수로 nul이라는 실제 파일을 만들 수 있습니다. OS가 “NUL”을 보호된 장치 이름으로 취급하기 때문에 일반 del 명령으로는 삭제할 수 없습니다.

파일을 제거하려면 Universal Naming Convention(UNC)를 사용해 Windows의 이름 검사를 우회해야 합니다. 이는 Windows에게 경로를 문자 그대로 처리하도록 지시하여 예약된 이름 처리를 무시하게 합니다.

파일이 나타나는 이유

  • Unix 계열 환경용으로 만든 도구가 > /dev/null 형태의 리다이렉션을 사용할 때 발생합니다.
  • Windows에서는 동일한 동작을 > NUL로 수행하지만, 구문이 잘못되면 Windows가 실제 nul 파일을 생성할 수 있습니다.
  • 이후 OS가 “NUL”을 예약된 장치 이름으로 인식해 일반적인 삭제를 차단합니다.

파일 삭제 방법

Command Prompt(CMD) 사용

del "\\?\D:\path\to\your\folder\nul"

D:\path\to\your\folder를 파일이 위치한 실제 드라이브 문자와 폴더 경로로 바꾸세요. \\?\ 접두사는 NUL, CON, PRN과 같은 예약 이름이 포함된 경로에 대한 작업을 허용하는 “마법 키”입니다.

PowerShell 사용

Remove-Item -LiteralPath "\\?\D:\path\to\your\folder\nul"

-LiteralPath 매개변수는 PowerShell이 경로를 그대로 해석하도록 보장하고, \\?\ 접두사는 예약 이름 검사를 우회합니다.

Windows 11에서 개발할 때 이 트릭을 기억해 두세요. 특히 Unix‑like 환경을 주 대상으로 만든 CLI 도구는 실수로 이러한 “예약” 파일을 폴더에 남길 수 있습니다.

Back to Blog

관련 글

더 보기 »

터미널 명령어 💻⚡

터미널 명령어용 커버 이미지 💻⚡https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads....