dir C: vs dir C: \


17

Kazara buldum eğer yaparsam:

dir C:\

Kökte C: sürücüsünün doğrudan alt öğesi olan dosyaların bir listesini alıyorum.

Ancak, eğer:

dir C:

Nerede olduklarından bile emin olmadığım büyük bir dosya listesi alıyorum (DLL'ler, EXE'ler, CPL'ler, vb.).

Bunun neden olduğunu ve bu listenin nereden geldiğini biliyor musunuz?


10
dir c:geçerli dizininizdeki dosyaların listesini döndürür
pun

2
@ The_IT_Guy_You_Don't_Like Farklı bir sürücüde değilseniz, bu durumda her sürücünün geçerli bir dizini olduğunu hayal edin, bu nedenle Q: \ konumundaysanız C üzerindeki "
hangi konumdaysanız

3
@BrianDrummond Hayır. % 100 yanlış. Windows oturumundaki her sürücünün işlem başına kendi bağımsız çalışma dizini vardır. Kesinlikle tüm sürücüler için tek bir çalışma dizini adı yoktur. Dene.
Andrew Medico

@AndrewMedico Onaylamak için Windows ile bir şeyler kazmak zorunda kalacağım - belki DOS'u hatırlıyorum, LOL! bu yüzden sana erteleyeceğim. Yorum silindi.
Brian Drummond

Yanıtlar:


19

Belirlendiğinde DIR locationkonumun içeriği gösterilir.

Komut da C:dahil olmak üzere birçok komutu belirtmek DIR, C sürücüsünü ve geçerli dizini ifade eder. Geçerli dizininizi görmek için şunu yazın:

c: 
cd

cdKomut tipik dizin akımdır değişim için kullanılır. Ancak, MS-DOS (ve modern Microsoft Windows dahil, ancak Unix dahil değil) benzer işletim sistemlerinde, cdkendi başına çalışan geçerli dizini gösterecektir.

Tüm olasılıklarda, cdkomutu kullanmadıysanız, geçerli dizininiz muhtemelen işletim sisteminizin kurulu olduğu dizindir. (En azından, bu Microsoft Windows sistemleri için yaygın bir davranıştır.)

Bunu yapabilirsiniz:

cd "C:\Program Files"
cd
dir c:

Bu size içeriğini gösterecek C:\Program Files

Benzer şekilde, şöyle bir şey yapabilirsiniz: copy C:*.*ve geçerli dizindeki tüm içerik kopyalanacaktır.

Belirttiğinizde C:\, ters eğik çizgi "üst düzey" dizini olarak da bilinen "kök" dizinini belirtir. Bu, mevcut dizininizle aynı olabilir veya olmayabilir.

Sadece belirtirseniz DIR \, geçerli sürücü varsayılacaktır. ( Hangi sürücünün "geçerli sürücü" olarak kabul edildiğini değiştirmek için C:ya da D:tüm komut olarak (tek başına bir satır) gibi bir şey yazabilirsiniz .) Yalnızca belirtirseniz DIR, geçerli sürücü ve geçerli dizin üstlendi.


Ah evet! Bu mantıklı geliyor. Çok teşekkür ederim. Bu tür davranışlara sahip olmayan unix kabuğuna çok daha aşinayım. Ve evet, o oturumda "cd" kullanmadım, bu yüzden gösterilen içerik "C: \ WINDOWS \ system32" idi. Saygılarımla.
Nuno

21

TL; DR - dir C:geçerli dizini, C:ne olursa olsun dir C:\, her zaman \kökünü listeleyecek şekilde listeler C:.

Uzun hikaye ... Komut satırı isteminde, cmdoturum sırasında eriştiği her sürücü için geçerli dizini hatırlar.

Bir sürücüde geçerli dizin X:geçerli olandan başka ile ayarlanabilir cd X:\etc(olmadan /dda geçerli sürücüyü değiştirecek anahtarı X:) ve tarafından döndürülen cd X:(a olmadan \) - Her iki not cd /?yardım:

Belirtilen sürücüdeki geçerli dizini görüntülemek için CD sürücüsü: yazın.

Bir sürücünün geçerli dizinini değiştirmenin yanı sıra geçerli sürücüyü değiştirmek için / D anahtarını kullanın .

Bkz. Her sürücünün neden kendi geçerli dizini var? Bu alıntı dahil, arka plan için.

Her sürücü için geçerli dizini hatırlamak, Win32'de sürücü başına geçerli dizin olarak böyle bir kavram olmamasına rağmen, en azından toplu iş dosyaları için [ nb DOS ] 'dan beri korunmuştur . Win32'de, sahip olduğunuz tek şey geçerli bir dizindir. Her sürücünün kendi geçerli dizinine sahip olduğu görünüm, her sürücünün kendi geçerli dizinine sahip dosyaları toplu olarak oluşturmak için garip ortam değişkenleri oluşturmak için garip ortam değişkenleri kullanan cmd.exe tarafından yapılan sahte bir görünümdür.

strange environment variablesBağlantılı mesaja atıfta ortam değişkenleri: bu garip = C nelerdir? set ""cmd isteminde görülebilir , örneğin:

C:\temp>cd X:\etc

C:\temp>cd C:
C:\temp

C:\temp>cd X:
X:\etc

C:\temp>set ""
=C:=C:\temp
=X:=X:\etc
ALLUSERSPROFILE=C:\ProgramData
[...]

1
dir C: geçerli dizini C: 'de listeler. Ek ayrıntılar için, geçerli dizini C:' da ayarlamadıysanız, sistem bölümünüz (Windows dosyalarının bulunduğu dizin) olduğunu varsayar ve nasıl olduğunuza bağlı olarak günlüğe kaydedilen ve hangi kullanıcı olarak ve hangi Windows sürümünde, varsayılan geçerli dizin, geçerli kullanıcı bağlamının ( c:\Users\<you>) c:\windows\system32veya ana dizini olacaktır c:\windows\temp. Yine de bunlardan hiçbirini varsaymayın: tutarlı bir şekilde uygulanmakta olan herhangi bir varsayılana güvenmek yerine her zaman bakmak istediğiniz dizini belirtin veya bu dizine geçin.
David Spillett

5

İki farklı dizin almanızın nedeni basittir. \Farktır.

dir C:\Csürücüsünün dizin listesini istiyor \. \kök klasördür.

dir C:Eğer nerede dizin listeleme istiyor vardır (eğer sürücüler değişirse ya, son)

Eğer Csürücüdeyseniz ve sadece diryazıp vurursanız enter, aynı içeriği alırsınız dir C:. Farklı bir sürücüdeyseniz ve sürücüye C:geri dönmek için yazın C, yazarken gördüğünüz dizine gelirsiniz dir C:.


0

Bu StackOverflow olmadığından, bu en iyi ihtimalle sadece bir yorum olmalıdır, ancak sığmaz :.

(Belki Win32 üzerinden) .NET Framework geçerli dizin yansıtmayan için geçerli sürücünün:

> (curdir)
C:\Utils\DotLisp\My Stuff
> (.FullName (DirectoryInfo. "C:"))
C:\Utils\DotLisp\My Stuff
> (.FullName (DirectoryInfo. "G:"))
G:\
> (set (curdir) "G:/Temp/Emails")
G:/Temp/Emails
> (curdir)
G:\Temp\Emails
> (.FullName (DirectoryInfo. "G:"))
G:\Temp\Emails
> (.FullName (DirectoryInfo. "C:"))
C:\

0

İki komutu birlikte çalıştırıyorsunuz. c:kendisi C: sürücüsündeki ÖNCEKİ KONUM'a geçmek için kullanılan bir komuttur. Böylece, d:veya tuşlarını kullanarak sürücüleri değiştirmeden önce konumu tutacaktır e:. dirdizinin içeriğini listelemek için kullanılan bir komuttur.

Temel olarak, başka bir sürücüde olsanız bile C: sürücüsündeki önceki klasörünüzün içeriğini listeliyorsunuz.

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.