Windows에서 ._.을 삭제할 수 없습니다 파일


91

현재 외부 하드 드라이브의 루트에 단순히이라는 파일이 있습니다.이 파일 ._.은 얼마 전에 MacBook에서 MacBook을 사용한 후 하드 드라이브에 추가 된 것 같습니다. Windows 10 컴퓨터에서이 파일을 삭제하려고합니다. 그러나 Windows는 파일을 찾을 수 없다고 주장합니다.

Windows 탐색기의 오류 메시지

또한 관리자 권한 명령 프롬프트를 통해 파일을 삭제하려고 시도했습니다. 그러나 동일한 메시지가 리턴됩니다.

관리자 권한 명령 프롬프트의 오류 메시지

Windows를 통해 하드 드라이브에서이 파일을 삭제할 수있는 방법이 있습니까?


7
@ rr- 유닉스 파일 이름으로 할 수있는 불행은 훨씬 더 큰 경향이 있습니다. : 3
Martijn

5
명령 프롬프트에 이상한 것이 표시됩니다. 에 find "._."대한 따옴표는 생략했습니다 del ._.. 시도 했습니까 del "._."?
jpmc26

1
흥미로운 현상. 특히 삭제하기가 얼마나 어렵습니다. 파일이 합법적으로 생성 되었습니까? (맥의 이름은 맥에서도 꽤 이상하게 들린다)
토마스

30
내가 가장 좋아하는 부분은 파일을 삭제하려는 표현입니다.
노동자

8
"._."코알라는 보호 종이 기 때문에 삭제할 수 없습니다.

답변:


146

다음 명령을 실행하십시오 (관리자 권한으로 권한 상승 / 명령 프롬프트 열기).

del "\\?\F:\._."

\\?\접두사 정보 :

파일 I / O의 \\?\경우 경로 문자열 의 " "접두어는 Windows API에게 모든 문자열 구문 분석을 비활성화하고 그 뒤에 나오는 문자열을 파일 시스템으로 바로 보내도록 지시합니다.

...

경로 문자열의 자동 확장을 해제하기 때문에 " \\?\"접두어는 경로 이름 에 " .."및 " ."를 사용할 수도 있습니다. 이는 다른 예약 된 상대 경로를 사용하여 파일에서 작업을 수행하려는 경우 유용 할 수 있습니다. 완전한 경로의 일부로 지정자.

\\?\상대 경로와 함께 " "접두사를 사용할 수 없습니다 .

:

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>

그 접두어를 URL과 함께 사용할 수 있습니다 start.
Steven Penny

URL과 함께 사용하지 마십시오. start 명령에서 URL을 실행하려면 큰 따옴표를 사용하십시오.
넬슨

1
... 길이 제한을 우회하는 데 사용할 수 있습니까? (예를 들어, node_modules디렉토리를 삭제하십시오 .)
jpmc26

1
@ jpmc26 MSDN에 따라 (내 대답에 제공된 링크 참조) 그렇습니다. 그러나 \\?\ 접두사 del또는 rmdir명령에 도움이되지 않는 시나리오를 만났습니다 . 7-zip파일 관리자로 설정되었습니다 .
JosefZ

2
@ jpmc26 : 길이 제한을 무시할 수 있습니다. 기본적으로 확장 경로의 길이 제한은 32K입니다. 그러나 대부분의 경로 는 확장 C:\Windows되거나 ..확장되지 않으며 길이 제한은 260입니다. 260 제한은 여러 곳에서 시행됩니다. 불행히도 그 장소들 중 상당수는`\\?`경로에도 그 한계를 잘못 적용합니다.
MSalters

24

질문에 이미 답변을했지만 여전히 가능한 대안 솔루션을 제공하고 싶습니다. 레거시 "짧은 이름"(dir 명령에 "/ x"옵션으로 표시 할 수 있음)을 사용하면 다음을 수행 할 수도 있습니다. 다른 방법으로는 처리 할 수없는 "펑키 한"이름을 가진 파일을 파악하십시오.

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free

20

7-zip을 설치 하고 열고 파일 메뉴를 사용하여 파일 이름을 일반 이름 (예 :)으로 변경 aaa한 다음 삭제할 수 있습니다. 게시물 에서 발견되었습니다 .

VM에서 실행되는 Windows XP에서 이것을 테스트했습니다. Linux를 사용 ._.하여 공유 디렉토리에서 파일을 작성했습니다 .


-4

Windows 탐색기를 사용하여 파일로 이동하십시오. 다음과 같이 파일 이름을 바꾸십시오. filename.txt 이제 파일을 삭제할 수 있습니다. 이 작업을 수행 할 수 없으면 관리자 권한이 있는지 확인해야합니다.

(삭제할 수없는 이유는 파일 이름에 실제로 이름이없고 확장자가 유효하지 않기 때문입니다. 파일 이름은 "."이고 확장자는 "__."이며 허용되지 않습니다.)


1
궁금한 점이 있으시면 OP는 어디에서 언급 했습니까?
muru

@Arie Klep, 나는 내 말을 되 찾는다. 내가 다른 비슷한 질문에 읽기 권한이 있어야합니다
말장난

-8

1) 소유권 가져 오기 2) 관리자에게 모든 권한 부여 3) 파일로 원하는 작업 수행

높은 CMD 프롬프트

takeown / f 삭제 불가능한 파일의 전체 경로 (마지막 항목은 삭제 불가능한 파일이어야 함)

icacls 삭제할 수없는 파일 / grant 관리자의 전체 경로 : f

파일 삭제


26
문제는 파일 이름이 일치하지 않기 때문에 Windows가 파일에 전혀 액세스 할 수 없다는 것 같습니다.
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.