about_Path_Syntax
간단한 설명
PowerShell의 전체 및 상대 경로 형식에 대해 설명합니다.
자세한 설명
PowerShell 공급자를 통해 액세스할 수 있는 데이터 저장소의 모든 항목은 경로 이름으로 고유하게 식별할 수 있습니다. 경로는 항목 이름, 항목이 있는 컨테이너 및 하위 컨테이너 및 컨테이너에 액세스하는 PowerShell 드라이브의 조합입니다.
PowerShell에서 경로 이름은 정규화된 형식과 상대 형식 중 하나일 수 있습니다. 정규화된 경로는 경로를 구성하는 모든 요소로 구성됩니다. 다음 구문은 정규화된 경로 이름의 요소를 보여 줍니다.
[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>
<provider>
자리 표시자는 데이터 저장소에 액세스하는 PowerShell 공급자를 참조합니다. 예를 들어 FileSystem 공급자를 사용하면 컴퓨터의 파일 및 디렉터리에 액세스할 수 있습니다. 이 구문 요소는 선택 사항이며 드라이브 이름은 모든 공급자에서 고유하기 때문에 필요하지 않습니다.
<drive>
자리 표시자는 특정 PowerShell 공급자가 지원하는 PowerShell 드라이브를 나타냅니다. FileSystem 공급자의 경우 PowerShell 드라이브는 시스템에 구성된 Windows 드라이브에 매핑됩니다.
예를 들어 시스템에 드라이브와 드라이브가 C:
포함된 A:
경우 FileSystem 공급자는 PowerShell에서 동일한 드라이브를 만듭니다.
드라이브를 지정한 후에는 항목을 포함하는 컨테이너 및 하위 컨테이너를 지정해야 합니다. 컨테이너는 데이터 저장소에 있는 계층적 순서로 지정해야 합니다. 즉, 부모 컨테이너로 시작한 다음 해당 부모 컨테이너의 자식 컨테이너로 시작하여 각 자식 컨테이너에 대한 패턴을 반복해야 합니다. 또한 각 컨테이너 앞에 백슬래시가 있어야 합니다.
참고 항목
PowerShell을 사용하면 다른 플랫폼의 PowerShell과의 호환성을 위해 백슬래시 또는 슬래시를 사용할 수 있습니다. PowerShell 명령에 대해 작동하지만 네이티브 디렉터리 구분 기호만 필요한 네이티브 애플리케이션에서 사용할 때는 작동하지 않을 수 있습니다. 플랫폼에 사용되는 문자를 찾는 데 사용합니다 [System.IO.Path]::DirectorySeparatorChar
.
컨테이너 및 하위 컨테이너를 지정한 후에는 백슬래시 앞에 항목 이름을 제공해야 합니다. 예를 들어 디렉터리에 있는 C:\Windows\System32
파일의 Shell.dll
정규화된 경로 이름은 다음과 같습니다.
C:\Windows\System32\Shell.dll
이 경우 컨테이너에 액세스하는 드라이브는 드라이브이고 C:
최상위 컨테이너는 Windows
하위 컨테이너이며 System32
항목은 다음과 같습니다 Shell.dll
.
경우에 따라 정규화된 경로를 지정할 필요가 없으며 대신 상대 경로를 사용할 수 있습니다. PowerShell을 사용하면 현재 작업 위치를 기준으로 항목을 식별할 수 있습니다.
PowerShell은 다음 문자 시퀀스를 사용하여 상대 경로를 지정합니다.
- (
.
) - 현재 위치 - (
..
) - 현재 위치의 부모 - (
\
) - 현재 위치의 루트
다음 예제는 설정되는 현재 작업 디렉터리를 기반으로 합니다 C:\Windows
.
- 상대 경로
.\System
는 다음과 같이 확인됩니다.C:\Windows\System
- 상대 경로
..\Program Files
는 다음과 같이 확인됩니다.C:\Program Files
- 상대 경로
\Program Files
는 다음과 같이 확인됩니다.C:\Program Files
- 상대 경로
System
는 다음과 같이 확인됩니다.C:\Windows\System
명령에서 경로를 사용하는 경우 정규화된 경로 또는 상대 경로를 사용할 수 있습니다. 예를 들어 현재 작업 디렉터리가 .입니다 C:\Windows
. 다음 Get-ChildItem
명령은 디렉터리의 모든 항목을 C:\TechDocs
검색합니다.
Get-ChildItem \TechDocs
백슬래시는 현재 작업 위치의 드라이브 루트를 사용해야 임을 나타냅니다. 작업 디렉터리가기 C:\Windows
때문에 드라이브 루트는 C:
드라이브입니다. TechDocs
디렉터리가 루트에 있으므로 백슬래시만 지정해야 합니다.
정규화된 경로를 사용하여 동일한 결과를 얻습니다.
Get-ChildItem C:\TechDocs
정규화된 경로 또는 상대 경로 이름을 사용하는지 여부에 관계없이 경로는 항목을 찾을 뿐만 아니라 해당 항목이 다른 컨테이너의 다른 항목과 동일한 이름을 공유하더라도 항목을 고유하게 식별하기 때문에 중요합니다.
예를 들어 각각 이름이 지정된 Results.txt
두 개의 파일이 있다고 가정해 보겠습니다. 첫 번째 파일은 이름이 디렉터 C:\TechDocs\Jan
리에 있고 두 번째 파일은 이름이 지정된 C:\TechDocs\Feb
디렉터리에 있습니다. 첫 번째 파일(C:\TechDocs\Jan\Results.txt
)의 경로와 두 번째 파일(C:\TechDocs\Feb\Results.txt
)의 경로를 사용하면 두 파일을 명확하게 구분할 수 있습니다.
참고 항목
PowerShell