Windows에서 일부 파일 / 폴더 이름 앞에 점이있는 이유는 무엇입니까?


34

예를 들어에 My Documents다음 폴더가 있습니다.

.ssh
.subversion

이것이 내가 모르는 일종의 명명 규칙입니까?

답변:


94

이 명명 규칙은 "숨겨진"파일 또는 디렉토리를 의미하는 Unix와 유사한 운영 체제 (예 : Linux 또는 OS X)에서 제공됩니다. 어디에서든 작동하지만, 그 를 사용하여 홈 디렉토리에 숨기기 구성 파일 (예 : ~/.cache/~/.plan- 그들은 자주 "dotfiles"라고하고 있습니다).

어떤 방식 으로든 도트 파일은 Windows의 "AppData"디렉토리에 해당하는 전통적인 Unix라고 할 수 있습니다. (대부분의 리눅스 프로그램은 따라 변경되는 XDG 기본 디렉토리 사양을 자신의 구성을 이동 ~/.config/및 다른 데이터 ~/.cache/~/.local/share/-이가 좀 더 유사하게 AppData\Roaming하고 AppData\Local.)

POSIX가 아닌 Windows 시스템 API를 사용하도록 포팅되었지만 일부 다른 Windows 규칙에 맞게 조정되지 않은 일부 프로그램 (특히 OpenSSHSubversion)을 사용했기 때문에 Windows에 이러한 디렉토리 .ssh.subversion디렉토리 가 있습니다.

때때로 Windows 시스템에서 Cygwin과 같은 Unix와 유사한 환경을 사용하는 사람들이 더 쉽게 생활 할 수 있도록이 적응을 의도적으로 건너 뜁니다. 예를 들어 Cygwin ls은 Windows "hidden"플래그를 무시하고 .dotfile이름 만 사용하는 유닉스와 같은 표준 도구 세트를 설치합니다 . 또한 같은 위치 (예 :)를 사용하면 <home>/.sshWindows와 Linux / BSD / OSX 컴퓨터간에 구성을보다 쉽게 ​​동기화 할 수 있습니다.

또한 : 일반적으로 이러한 파일은 사용자의 홈 디렉토리 (예 : Linux 또는 Windows 7+)에 있습니다. "문서"또는 "내 문서"하위 디렉토리에 넣는 것은 매우 드 rare니다./home/name/.sshC:\Users\name\.ssh


Rob Pike 가 Google+에 글을 쓸 때 우연한 기능이었습니다.

유닉스 파일 시스템의 설계, 항목을 작업중인되면서 오래 전, .그리고 ..출연, 네비게이션 쉽게 확인합니다. 확실하지는 않지만 ..파일 시스템이 계층 구조가되었을 때 버전 2를 다시 쓰는 동안 들어갔다고 생각 합니다 (초기 구조가 매우 다름). 그러나 ls를 입력하면 이러한 파일이 나타 났으므로 Ken 또는 Dennis가 간단한 테스트를 프로그램에 추가했습니다. 그때는 어셈블러에 있었지만 문제의 코드는 다음과 같습니다.

if (name[0] == '.') continue;

이 문장은 원래의 것보다 약간 짧았습니다.

if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

그러나, 그것은 쉬웠다.

두 가지 결과가 발생했습니다.

먼저, 선례가 잘못되었습니다. 다른 게으른 프로그래머들도 같은 단순화를 통해 버그를 도입했습니다. 마침표로 시작하는 실제 파일은 계산해야 할 때 종종 건너 뜁니다.

둘째, "숨겨진"또는 "도트"파일이라는 개념이 만들어졌습니다. 결과적으로 더 게으른 프로그래머는 파일을 모든 사람의 홈 디렉토리에 놓기 시작했습니다. 나는 이것을 입력하는 데 사용하는 머신에 많은 것을 설치하지는 않았지만 홈 디렉토리에는 약 100 개의 도트 파일이 있으며 대부분의 파일이 무엇인지 또는 여전히 필요한지조차 모른다 . 이 누적 된 슬러지로 인해 내 홈 디렉토리를 통과하는 모든 파일 이름 평가가 느려집니다.


고맙습니다! 매우 철저합니다. "C : \ users \ <username> \"폴더에서 Windows PowerShell의 "ls"명령을 사용하고 Cygwin 터미널에서 다시 시도했습니다. PowerShell은 도트 파일을 나열하고 AppData를 숨기는 반면 Cygwin 터미널은 정반대입니다. 흥미 롭습니다! Cygwin은 Unix 규칙을 사용하고 있습니다.
Niko Bellic

@NikoBellic : Unix / Cygwin ls에는 -a모든 파일을 나열 하는 옵션이 있습니다.
grawity

1
@Ruslan : 예 : VMS에는 숨겨진 파일이 전혀 없었습니다. 당신은 단지 같은 것들로 끝날 것 LOGIN.COM또는 DECW$MAIL.DAT 홈 디렉토리 . (그 당시에 어떤 다른 시스템이 인기가 있었는지 잘 모르겠습니다.) 유닉스는 최근에 만들어졌습니다. 그것은 아무런 협약도 없었습니다.
grawity

2
@grawity MS-DOS 1.0은 Digital Research가 수행 한 DEC 스타일 O / S였으며 당시 Unix 비즈니스에 종사 했던 Microsoft가 구입했습니다 . MS-DOS 2.0 이상 ..에는 "up dir"을 포함하여 계층 적 파일 시스템과 일부 유닉스 규칙이 추가되었습니다 . Microsoft는 실제로 이러한 "고급 유닉스 기능"을 광고했습니다.
Fred Foo

1
@grawity 아 맞다, 그것은 DRI의 CP / M을 복제하는 시애틀 컴퓨터 제품이었다. 죄송합니다. 그러나 필자의 요점은 마이크로 소프트는 80 년대 초 유닉스 샵이었으며 DEC 시스템 만이 출발점은 아니었다. (유닉스는 원래 DEC 하드웨어에서 실행되었지만 DEC OS보다 CTSS 및 Multics의 영향을 더 많이받는 것으로 생각되었습니다.)
Fred Foo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.