Hangi çalıştırılabilir dosyanın çalıştırılacağına Windows nasıl karar verir?


2

Bilgisayarımda çalıştırılabilir dosyaları olan birkaç yer var ve hepsi eklenmiş PATH.

Bazen, aynı adı taşıyan farklı yapılandırmalara sahip veya tamamen farklı şeyler yapan birden fazla çalıştırılabilir dosyam olduğu durumlar var. Örneğin, yerel Windows FINDkomutuna sahibim ve ayrıca Windows için Linux portuna sahibim find. Her ikisi de kendi başlarına çok faydalıdır, ancak çok farklı şeyler yaparlar.

FINDKomut satırından çalıştırdığımda ; Varsayılan olarak, Windows sürümü, Unix sürümüyle dizinde olmadığım sürece çalışır. Bu durumda, çoğunlukla istediğim bu, ancak farklı olan durumlar var. Çalışacak çalıştırılabilir dosyanın her zaman yazdığımda çıkarılan kişi olacağını biliyorum which <executable name>.

Sorum şu: Bu yürütülebilir dosya diğerine nasıl seçiliyor? Windows neden Gitbulunduğu yerde ...\msysgit\bin\git.exebulunanı seçiyor D:\bin\git.exe? Her iki konum da açık PATH. PATHGirişlerin sırası kadar saçma mı?


2
Evet, PATHo andaki çalışma dizinine baktıktan sonra , siparişin ne olduğuna karar verilir.
heavyd

Sanırım mantıklı. Sadece aptal görünüyor.
dgo,

1
@ user1167442 Bu nasıl aptal ya da aptal? Hangi sırayla Windows'un %PATH%listelendikleri sıraya göre dizinde arama yapmasını beklersiniz ? Bir yerden başlamalı.
BACON

@BACON Kabul ettiğim bir yerden başlamak zorunda. Belki aptal değildir; Sadece yönetimi daha kolay olacak gibi görünüyor. Bile düzgün bakmak gerekirse, ben yerine, bir metin düzenleyicisine kopyalamak zorunda ;olan ;\n, sonra düzenleyebilir ve tekrar katılmak. Sanırım bir kayıt defteri betiği yazabilirim.
dgo,

Yanıtlar:


6

Windows önce geçerli çalışma dizinini kontrol eder, ardından PATH değişkenindeki her yolu soldan sağa kontrol eder ve son olarak sistem konumlarını kontrol eder (örneğin,% WINDIR%). Bu, Linux ile neredeyse aynıdır, ancak Linux "" u kontrol etmemektedir. PATH'ten önce.


Linux'un "." İşaretlememesi ilginç. ilk.
dgo,

2
Linux bunu bir güvenlik riski olarak görüyor. Birisi bir dizini yürütülebilir bir dizine bırakırsa, örneğin / usr / bin yerine yanlışlıkla çalıştırabilirsiniz. Windows, davranışını aynı davranışa sahip MS-DOS'tan taşır.
phyrfox
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.