실수로 다음과 같은 사실을 발견했습니다.
dir C:\
루트에 C : 드라이브의 직접적인 자식 인 파일 목록을 얻습니다.
그러나 내가 할 경우 :
dir C:
나는 그들이 어디에 있는지 잘 모르는 거대한 파일 목록을 얻습니다 (DLL, EXE, CPL 등).
왜 이런 일이 발생하며이 목록의 출처는 무엇입니까?
실수로 다음과 같은 사실을 발견했습니다.
dir C:\
루트에 C : 드라이브의 직접적인 자식 인 파일 목록을 얻습니다.
그러나 내가 할 경우 :
dir C:
나는 그들이 어디에 있는지 잘 모르는 거대한 파일 목록을 얻습니다 (DLL, EXE, CPL 등).
왜 이런 일이 발생하며이 목록의 출처는 무엇입니까?
답변:
지정 DIR location
하면 위치의 내용이 표시됩니다.
C:
명령을 포함하여 많은 명령을 지정 DIR
하면 C 드라이브 및 현재 디렉토리를 나타냅니다. 현재 디렉토리를 보려면 다음을 입력하십시오.
c:
cd
이 cd
명령은 일반적으로 현재 디렉토리를 변경하는 데 사용됩니다. 그러나 MS-DOS (및 최신 Microsoft Windows는 포함하지만 Unix는 포함하지 않은 유사한 운영 체제)에서 cd
자체 실행 하면 현재 디렉토리가 표시됩니다.
cd
아마도이 명령을 사용하지 않았다면 현재 디렉토리는 아마도 운영 체제가 설치된 디렉토리 일 것입니다. (적어도 이는 Microsoft Windows 시스템에서 일반적인 동작입니다.)
당신은 이것을 할 수 있습니다 :
cd "C:\Program Files"
cd
dir c:
그것은 당신에게 내용을 보여줄 것입니다 C:\Program Files
마찬가지로 다음과 같은 작업을 수행 할 수 copy C:*.*
있으며 현재 디렉토리의 모든 내용이 복사됩니다.
을 지정 C:\
하면 백 슬래시는 "최상위"디렉토리라고도하는 "루트"디렉토리를 나타냅니다. 현재 디렉토리와 같거나 같지 않을 수 있습니다.
을 지정 DIR \
하면 현재 드라이브가 사용됩니다. ( C:
또는 D:
명령을 전체 명령으로 한 줄에 입력하여 "현재 드라이브"로 간주되는 드라이브를 변경할 수 있습니다.)을 지정 DIR
하면 현재 드라이브와 현재 디렉토리가 추정.
TL; DR은 - dir C:
에 현재 디렉토리가 나열됩니다 C:
그 반대로, 될 일이 무엇이든 dir C:\
항상 나열 할 \
의 루트를 C:
.
긴 이야기 ... 명령 행 프롬프트 cmd
에서 세션 중에 액세스 한 각 드라이브의 현재 디렉토리를 기억합니다.
드라이브의 현재 디렉토리 X:
현재 이외는 설정할 수 있습니다 cd X:\etc
(를 빼고 /d
도 현재 드라이브를 바꿀 것 스위치 X:
)에 의해 반환되는 cd X:
(A없이 \
) - 모두에 언급 cd /?
도움 :
CD drive :를 입력하여 지정된 드라이브의 현재 디렉토리를 표시하십시오.
/ D 스위치를 사용하여 드라이브의 현재 디렉토리 를 변경하고 현재 드라이브 를 변경하십시오.
각 드라이브에 고유 한 현재 디렉토리가있는 이유를 참조하십시오 . 이 인용문을 포함하여 배경.
Win32에는 실제로 드라이브 별 현재 디렉토리와 같은 개념은 없지만 각 배치에 대한 현재 디렉토리 는 적어도 배치 파일에 대해 [ nb DOS ] 이후로 유지되었습니다 . Win32에서는 현재 디렉토리 만 있으면됩니다. 각 드라이브에 고유 한 현재 디렉토리가있는 모양은 이상한 환경 변수를 사용하여 각 드라이브에 고유 한 현재 디렉토리가있는 배치 파일에 대한 환상을 만드는 cmd.exe에 의해 가짜입니다.
strange environment variables
링크 된 게시물에 언급 된 환경 변수 : 이상한 = C은 무엇입니까? 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
[...]
c:\Users\<you>
) c:\windows\system32
또는 c:\windows\temp
입니다. 이 중 어느 것도 가정하지 마십시오. 항상 적용되는 특정 기본값에 의존하는 대신 항상보고자하는 디렉토리로 상태를 전환하거나 전환하십시오.
이것이 StackOverflow가 아니기 때문에, 이것은 단지 주석 일뿐이지만 맞지 않습니다.
.NET Framework (아마 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:\
dir c:
현재 디렉토리에있는 파일의 목록을 반환