윈도우는 어떤 실행 파일을 실행할지 어떻게 결정합니까?


2

컴퓨터에 실행 파일이있는 여러 곳이 있으며 모두에 추가됩니다 PATH.

때로는 같은 이름을 가진 여러 실행 파일이 구성이 다르거 나 완전히 다른 일을하는 경우가 있습니다. 예를 들어 기본 Windows FIND명령 이 있고 Windows 용 Linux 포트도 있습니다 find. 두 가지 모두 자체적으로 매우 유용하지만 매우 다른 일을합니다.

FIND명령 줄에서 실행할 때 ; 기본적으로 Windows 버전은 Unix 버전의 디렉토리에 있지 않으면 실행됩니다. 이 경우, 이것은 주로 내가 원하는 것이지만 상황이 다릅니다. 나는 실행할 파일이 항상 입력 할 때 출력되는 파일이라는 것을 알고 있습니다 which <executable name>.

내 질문은 : 그 실행 파일은 어떻게 다른 것보다 선택됩니까? Windows가 Git위치 ...\msysgit\bin\git.exe와 위치를 선택하는 이유는 무엇 D:\bin\git.exe입니까? 두 위치는 모두에 있습니다 PATH. PATH항목 의 순서만큼 어리석은가 ?


2
그러나 작업 순서 PATH는 현재 작업 디렉토리를 확인한 후 결정합니다.
중화

말이되는 것 같아 바보 같아요
dgo

1
@ user1167442 어떻게 바보 나 어리석은가? 디렉토리 %PATH%가 나열된 순서가 아닌 경우 Windows는 어떤 순서로 디렉토리를 검색 합니까? 어딘가에서 시작해야합니다.
BACON

@BACON 동의하는 곳에서 시작해야합니다. 어쩌면 바보가 아닙니다. 관리하기가 더 쉬울 것 같습니다. 심지어 제대로보고, 나는 대체 텍스트 편집기로 복사해야 ;;\n다음, 그것을 편집하고 다시 가입 할 수 있습니다. 레지스트리 스크립트를 작성할 수 있다고 생각합니다-meh.
dgo

답변:


6

Windows는 먼저 현재 작업 디렉토리를 확인한 다음 PATH 변수의 각 경로를 왼쪽에서 오른쪽으로 확인한 다음 시스템 위치 (예 : % WINDIR %)를 확인합니다. 이것은 리눅스가 "."를 체크하지 않는 것을 제외하고는 리눅스와 거의 동일하다. PATH 전에.


리눅스가 "."을 체크하지 않는 것은 흥미 롭다. 먼저.
dgo

2
리눅스는 이것을 보안 위험으로 본다. 예를 들어 누군가가 홈 디렉토리에 실행 파일을 드롭하면 실수로 / usr / bin 대신 실행할 수 있습니다. Windows는 동일한 동작을 가진 MS-DOS에서 동작을 수행합니다.
phyrfox
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.