Windows에서“NUL”이라는 파일을 어떻게 제거합니까?


49

라는 파일을 찾은 Windows XP 상자 (NTFS 파일 시스템)가 있습니다 NUL. 일반적인 방법으로이 파일을 제거 할 수 없었습니다. 동일한 디렉토리의 다른 파일과 달리 파일 AdministratorSYSTEM그룹 에서 소유 한 것으로 보입니다 (다른 파일은 내 사용자 ID가 소유 함).

이 파일을 어떻게 제거합니까? 어디에서 왔습니까?


3
NUL은 시스템 예약어입니다. 이 Wikipedia 기사를 참조하십시오 . 파일 시스템에 NUL이라는 파일이 없어야합니다. 버그가있는 소프트웨어로 인해 발생할 수 있습니다. DELETE명령 프롬프트를 사용하여 명령을 사용 하여 제거 할 수 있습니다 .
bwDraco

9
@DragonLord : 파일 시스템 에는 그러한 이름에 문제가 없습니다. 예를 들어 POSIX 환경 내에서 이러한 파일을 작성할 수 있습니다. aux.c소프트웨어 소스 코드에서 비슷한 이름을 찾을 수 있습니다 . 이러한 "장치 이름"을 관리하는 것은 Win32 API입니다.
grawity

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 및 CLOCK에도 동일하게 적용됩니다. $ 플러스 몇 가지 다른 - 볼 en.wikipedia.org/wiki/...
robocat

Cygwin은 일반적으로 "C : \ cygwin \ dev \ nul"에 표시되는 "nul"이라는 파일을 작성하거나 사용합니다. 이것은 몇 년에 한 번 Google에 도달 한 것이며이 질문으로 다시 돌아 왔습니다.
zarchasmpgmr

답변:


83

시험

Del \\?\C:\My\Path\NUL

명령 프롬프트에서.

자세한 내용은이 Microsoft 지원 문서를 참조하십시오. "원인 5 : 파일 이름에 Win32 네임 스페이스에 예약 된 이름이 포함되어 있습니다" 에서 NTFS 파일 시스템 볼륨의 파일 또는 폴더를 삭제할 수 없습니다 .


1
감사! 작동했습니다! 또한 권위있는 문서를 잘 참조 해 주셔서 감사합니다. 웹 검색에서 매우 유사하지만 작동하지 않는 것을 발견했습니다. 그 제안은 .대신에 있었다 ?.
그렉 매트

1
@ 그렉 : 물론! 설명서는 @DragonLord의 도움이었습니다. :-) 그리고 .대신에 넣는 ?것은 똑같은 일 을 하지 않습니다. 물음표는 하위 시스템에 의한 추가 처리를 방지하는 반면 기간은 "현재 기계"를 의미하지만 확실히 같은 것은 아닙니다. 혼란스러운. :)
Mehrdad

1
나는 그것이 실제로 그것을 의미하는지 확실하지 않습니다. \\.\ 접두사위한 장치 네임 스페이스 하지만, 명시 적 언급이없는 .이 디렉토리 이름의 경우와 같은 의미 ( "현재 X")를 가지고가.
grawity

4
작업 디렉토리가 이미있는 디렉토리 인 경우 위의 솔루션에 대한 대안으로 nul파일을 수행 할 수 있습니다 부분은 작업 디렉토리로 확장되고, 큰 따옴표 ( ) 모두는 예를 들어, "이상한"문자와 경로 이름 처리 할 수 있도록 . del "\\?\%CD%\nul"%CD%""\\?\C:\path,with\comma\nul"
HenrikB

1
그것은 내 환경에서 powershell이나 관리자 권한으로 효과적이지 않은 것처럼 보이지만 표준 터미널에서 효과적으로 작동했습니다.
JustinC

13

또는 Cygwin을 설치 한 경우 해당 파일이나 폴더에 문제가 없음을 알고 싶을 수도 있습니다. 특별히,

rm -r /cygdrive/c/path/to/the/file/or/folder/you/want/to/delete

Cygwin 터미널에 입력하면 이름이 지정된 파일 또는 폴더 nul또는 파일이 들어있는 폴더가 삭제됩니다 . 이것은 또한 같은 다른 특수 파일 이름에 적용 CON, PRN, AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8.


2
또한 git bash와 함께 작동
c33s

Git을 설치했다면 GNU rm명령이 있으므로 cygwin이 필요하지 않습니다. GNU 도구 bin 디렉토리를 PATH에 추가한다고 가정하면 cmd에서 모든 GNU 제품을 사용할 수 있습니다.
icc97

8

Google 결과가 높기 때문에 여기에 추가하고 있으며 NUL이라는 폴더 와 비슷한 문제가 있습니다. 불행히도 위의 수정은 도움이되지 않았습니다. 내가 본 다른 것들도 많이하지 않았습니다.

나는 노력 rmdir\\?\C:\My\Path\NULrmdir\\.\C:\My\Path\NUL어떤 성공없이 또한 내 SourceTree 설치에서 떠들썩한 파티를 사용하여 몇 가지 명령을 시도했다. 기쁨이 없습니다.

결국 DIR /X /Acmd에서 부모 디렉토리에 짧은 이름을 나열했습니다. 이것은 NUL~1내 NUL 폴더 로 돌아 왔습니다 .

그런 다음 표준 명령에서 사용 rmdir /s NUL~1되었고 마침내 문제가 해결되었습니다.


흠, 그것은 짧은 이름을 사용하여 특별한 이름을 우회하는 꽤 영리합니다.
SamB

1

Git for Windows가 설치되어있는 경우 다음을 수행하십시오.

  1. 제거하려는 파일이 포함 된 디렉토리를 엽니 다.
  2. 왼쪽 클릭하고 선택 Git Bash Here
  3. 입력 rm nul.json명령 프롬프트에서 Enter 키를 눌러 파일은 이제 제거해야합니다.

Git Bash를 여기에서 실행하십시오.

참고 :이 스크린 샷 nul.topo.json은 간단한 삭제로 제거 할 수없는 또 다른 파일 인 파일 제거를 보여줍니다 .

명령 실행 후

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.