dir C: बनाम dir C: \


17

मैंने गलती से पाया है कि अगर मैं करता हूं:

dir C:\

मुझे उन फ़ाइलों की एक सूची मिलती है जो सी: ड्राइव के सीधे बच्चे हैं, रूट में।

हालाँकि, अगर मैं:

dir C:

मुझे उन फ़ाइलों की एक विशाल सूची मिलती है, जहां मुझे यकीन भी नहीं है कि वे कहां हैं (DLL, EXE, CPL, आदि)।

क्या आप जानते हैं कि ऐसा क्यों होता है और यह सूची कहां से आती है?


10
dir c:अपने मौजूदा निर्देशिका में फ़ाइलों की सूची देता है
यमक

2
@ The_IT_Guy_You_D't_Like जब तक आप एक अलग ड्राइव पर नहीं होते हैं, उस स्थिति में प्रत्येक ड्राइव में वर्तमान निर्देशिका की कल्पना होती है, इसलिए यदि आप Q पर हैं: तो यह जो भी निर्देशिका के लिए दिखाता है "आप C. में हैं"
barlop

3
@ ब्रायनड्रममंड नोप। 100% गलत। विंडोज सत्र में प्रत्येक ड्राइव की अपनी स्वतंत्र कार्य निर्देशिका प्रति प्रक्रिया है। यह बिल्कुल सभी ड्राइव के लिए एक ही कार्यशील निर्देशिका नाम नहीं है। कोशिश करो।
एंड्रयू मेडिको

@AndrewMedico मुझे पुष्टि करने के लिए विंडोज के साथ कुछ खोदना होगा - शायद मुझे डॉस, LOL याद आ रहा है! इसलिए मैं तुम्हें टाल दूंगा। टिप्पणी हटा दी गई।
ब्रायन ड्रमंड

जवाबों:


19

निर्दिष्ट करने DIR locationसे आपको स्थान की सामग्री दिखाई देगी।

C:कमांड सहित कई कमांड पर निर्दिष्ट , DIRसी ड्राइव को संदर्भित करता है, और वर्तमान निर्देशिका को संदर्भित करता है। अपनी वर्तमान निर्देशिका देखने के लिए, यह टाइप करें:

c: 
cd

cdआदेश आम तौर पर परिवर्तन किया है जो निर्देशिका वर्तमान है किया जाता है। हालाँकि, MS-DOS (और इसी तरह के ऑपरेटिंग सिस्टम, जिसमें आधुनिक माइक्रोसॉफ्ट विंडोज भी शामिल है, लेकिन यूनिक्स शामिल नहीं है), cdखुद से चलकर आपको वर्तमान निर्देशिका दिखाएगा।

सभी संभाव्यता में, यदि आप cdकमांड का उपयोग नहीं कर रहे हैं , तो आपकी वर्तमान निर्देशिका संभवतः वह निर्देशिका है जिसे आपके ऑपरेटिंग सिस्टम में इंस्टॉल किया गया था। (कम से कम, यह माइक्रोसॉफ्ट विंडोज सिस्टम के लिए एक सामान्य व्यवहार है।)

तुम यह केर सकते हो:

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

वह आपको सामग्री दिखाएगा C:\Program Files

इसी तरह, आप कुछ ऐसा कर सकते हैं: copy C:*.*और वर्तमान निर्देशिका की सभी सामग्री की प्रतिलिपि बनाई जाएगी।

जब आप निर्दिष्ट करते हैं C:\, तो बैकस्लैश "रूट" निर्देशिका को इंगित करता है, जिसे "शीर्ष स्तर" निर्देशिका के रूप में भी जाना जाता है। हो सकता है, कि आपकी वर्तमान निर्देशिका के समान हो या न हो।

यदि आप केवल निर्दिष्ट करते हैं DIR \, तो वर्तमान ड्राइव मान लिया जाएगा। (आप एक संपूर्ण कमांड के रूप में ( C:या D:एक लाइन पर अपने आप से) कुछ टाइप कर सकते हैं , जिसे बदलने के लिए किस ड्राइव को "वर्तमान ड्राइव" माना जाता है।) यदि आप सिर्फ निर्दिष्ट करते हैं DIR, तो वर्तमान ड्राइव और वर्तमान निर्देशिका होगी। ग्रहण किया।


अरे हां! यह सब समझ में आता है। आपका बहुत बहुत धन्यवाद। मैं यूनिक्स शेल से बहुत अधिक परिचित हूं, जिसमें इस तरह का व्यवहार नहीं है। और हाँ, मैंने उस सत्र में "cd" का उपयोग नहीं किया था, इसलिए जो सामग्री दिखाई जा रही थी, वह "C: \ WINDOWS \ _3232" से थी। बहुत दयालु है।
नूनो

21

टीएल; डीआर - जो भी होता है, उस dir C:पर वर्तमान निर्देशिका को सूचीबद्ध करेगा C:, dir C:\जिसके विपरीत हमेशा की \जड़ को सूचीबद्ध करेगा C:

लंबी कहानी ... कमांड लाइन प्रॉम्प्ट पर, cmdसत्र के दौरान एक्सेस की गई प्रत्येक ड्राइव के लिए वर्तमान निर्देशिका को याद करता है।

वर्तमान एक के X:अलावा किसी अन्य ड्राइव पर वर्तमान निर्देशिका cd X:\etc( /dस्विच के बिना जो वर्तमान ड्राइव को भी बदल देगा X:) के साथ सेट किया जा सकता है , और cd X:( \) के बिना - दोनों की cd /?मदद से नोट किया गया है:

सीडी ड्राइव टाइप करें: निर्दिष्ट ड्राइव में वर्तमान निर्देशिका प्रदर्शित करने के लिए।

ड्राइव के लिए वर्तमान निर्देशिका को बदलने के अलावा वर्तमान ड्राइव को बदलने के लिए / डी स्विच का उपयोग करें ।

देखें कि प्रत्येक ड्राइव की अपनी वर्तमान निर्देशिका क्यों होती है? इस उद्धरण सहित पृष्ठभूमि के लिए।

याद रखें कि प्रत्येक ड्राइव के लिए वर्तमान निर्देशिका को कभी भी संरक्षित किया गया है [ nb DOS ], कम से कम बैच फ़ाइलों के लिए, हालांकि वास्तव में Win32 में प्रति-ड्राइव वर्तमान निर्देशिका के रूप में ऐसी कोई अवधारणा नहीं है। Win32 में, आपके पास एक वर्तमान निर्देशिका है। उपस्थिति जो प्रत्येक ड्राइव की अपनी वर्तमान निर्देशिका है, cmd.exe द्वारा एक नकली-आउट है, जो बैच फ़ाइलों में भ्रम पैदा करने के लिए अजीब पर्यावरण चर का उपयोग करता है कि प्रत्येक ड्राइव की अपनी वर्तमान निर्देशिका है।

strange environment variablesलिंक किए गए पोस्ट में करने के लिए भेजा वातावरण चर: क्या ये अजीब = सी कर रहे हैं? set ""उदाहरण के लिए, cmd प्रॉम्प्ट पर देखा जा सकता है :

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: C पर वर्तमान निर्देशिका को सूचीबद्ध करेगा: - अतिरिक्त विवरण के लिए, यदि आपने C पर वर्तमान निर्देशिका को सेट नहीं किया है: तो यह मानकर कि यह आपका सिस्टम विभाजन है (विंडोज की फाइलों को रखने वाला) और आप कैसे हैं इसके आधार पर लॉग किया गया और कौन सा उपयोगकर्ता और विंडोज़ का कौन सा संस्करण है, डिफ़ॉल्ट वर्तमान निर्देशिका या तो वर्तमान उपयोगकर्ता संदर्भ ( c:\Users\<you>), c:\windows\system32या की होम निर्देशिका होगी c:\windows\temp। कभी भी इसका कोई अनुमान न लगाएं: हमेशा उस निर्देशिका को राज्य या स्विच करें जिसे आप किसी विशेष डिफ़ॉल्ट पर निर्भर होने के बजाय लगातार देखना चाहते हैं।
डेविड स्पिल्ट

5

कारण जो आपको दो अलग-अलग निर्देशिकाओं के लिए मिल रहा है वह सरल है। \अंतर है।

dir C:\Cड्राइव की डायरेक्टरी लिस्टिंग के लिए पूछ रहा है \\रूट फ़ोल्डर है।

dir C:निर्देशिका की लिस्टिंग के लिए पूछ रहा है कि आप कहां हैं (या अंतिम था, यदि आपने ड्राइव बदल दी है)

यदि आप Cड्राइव पर हैं और बस टाइप करते हैं dirऔर हिट करते हैं enter, तो आपको उसी की सामग्री मिल जाएगी dir C:। यदि आप एक अलग ड्राइव पर हैं, और ड्राइव पर C:वापस जाने के लिए टाइप करते हैं C, तो आप उस निर्देशिका में समाप्त हो जाएंगे, जिसे आपने टाइप किया था dir C:


0

जैसा कि यह StackOverflow नहीं है, यह केवल एक टिप्पणी होना चाहिए, सबसे अच्छा, लेकिन यह फिट नहीं है:।

.NET फ्रेमवर्क (शायद Win32 के माध्यम से) वर्तमान ड्राइव के लिए वर्तमान निर्देशिका को दर्शाता है :

> (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

आप एक साथ दो कमांड चला रहे हैं। c:खुद C: ड्राइव पर PREVIOUS LOCATION में बदलने के लिए एक कमांड है। इससे पहले कि आप ड्राइव का उपयोग कर d:या बदलकर स्थान को पकड़ लेंगे e:dirएक निर्देशिका की सामग्री को सूचीबद्ध करने के लिए प्रयोग किया जाने वाला कमांड है।

तो मूल रूप से आप अपने पिछले फ़ोल्डर की सामग्री को C: ड्राइव पर सूचीबद्ध कर रहे हैं, भले ही आप किसी अन्य ड्राइव पर हों।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.