Windows 탐색기에서 폴더 시스템을 탐색할 때는 일반적으로 현재 열려 있는 폴더라는 특정 작업 위치를 사용합니다. 현재 폴더에 있는 항목은 마우스를 사용하여 손쉽게 조작할 수 있습니다. Cmd.exe와 같은 명령줄 인터페이스의 경우, 특정 폴더와 같은 폴더에 있을 때는 전체 파일 경로를 지정하는 대신 약식 이름을 지정하여 해당 파일에 액세스할 수 있습니다. 현재 디렉터리는 작업 디렉터리라고 합니다.
Windows PowerShell은 명사 Location을 사용하여 작업 디렉터리를 참조하고 cmdlet 계열을 구현하여 현재 위치를 검사하고 조작합니다.
현재 위치 보기(Get-Location)
현재 디렉터리 위치의 경로를 확인하려면 다음과 같이 Get-Location 명령을 입력하십시오.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
참고: | |
Get-Location cmdlet은 BASH 셸의 pwd 명령과 유사하고, Set-Location cmdlet은 Cmd.exe의 cd 명령과 유사합니다. |
현재 위치 설정(Set-Location)
Get-Location 명령은 Set-Location 명령과 함께 사용됩니다. Set-Location 명령을 사용하면 현재 디렉터리 위치를 지정할 수 있습니다.
PS> Set-Location -Path C:\Windows
이 명령을 입력해도 아무 내용도 출력되지 않는데, 작업을 수행하는 대부분의 Windows PowerShell 명령은 경우에 따라 유용하지 않을 수 있으므로 거의 아무 내용도 출력하지 않습니다. Set-Location 명령을 입력한 후 디렉터리가 성공적으로 변경되었는지 확인하려면 다음과 같이 Set-Location 명령을 입력할 때 -PassThru 매개 변수를 포함하십시오.
PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS
-PassThru 매개 변수는 Windows PowerShell에서 명령을 실행할 때 기본적으로 출력되는 내용이 없을 경우 명령의 실행 결과에 대한 정보를 반환하기 위해 다양한 Set 명령과 함께 사용될 수 있습니다.
대부분의 UNIX 및 Windows 명령 셸에서와 동일한 방식으로 현재 위치에 상대적인 경로를 지정할 수 있습니다. 상대 경로에 대한 표준 표기법에서 마침표(.)는 현재 폴더를, 이중 마침표(..)는 현재 위치의 상위 디렉터리를 나타냅니다.
예를 들어 C:\Windows 폴더에 있을 경우 마침표(.)는 C:\Windows를, 이중 마침표는(..) C:를 나타냅니다. 다음과 같이 입력하면 현재 위치를 C: 드라이브의 루트로 변경할 수 있습니다.
PS> Set-Location -Path .. -PassThru
Path
----
C:\
위와 같은 방법을 HKLM:과 같이 파일 시스템 드라이브가 아닌 Windows PowerShell 드라이브에서도 사용할 수 있습니다. 다음과 같이 입력하면 현재 위치를 레지스트리의 HKLM\Software 키로 설정할 수 있습니다.
PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---- HKLM:\SOFTWARE
그런 다음 아래와 같이 상대 경로를 사용하여 디렉터리 위치를 Windows PowerShell HKLM: 드라이브의 루트인 상위 디렉터리로 변경할 수 있습니다.
PS> Set-Location -Path .. -PassThru Path ---- HKLM:\
Set-Location을 입력하거나 Set-Location에 대한 Windows PowerShell의 기본 제공 별칭(cd, chdir, sl)을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
최근 위치 저장 및 다시 불러오기(Push-Location 및 Pop-Location)
지나온 경로를 추적하고 이전 위치로 돌아갈 수 있으면 위치를 변경할 때 도움이 됩니다. Windows PowerShell의 Push-Location cmdlet이 지나온 디렉터리 경로의 순서가 지정된 기록("스택")을 만들면 보완 관계에 있는 Pop-Location cmdlet을 사용하여 디렉터리 경로의 기록을 통해 이전 위치로 돌아갈 수 있습니다.
예를 들어 Windows PowerShell은 대개 사용자의 홈 디렉터리에서 시작됩니다.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
참고: | |
스택이라는 단어는 .NET Framework을 포함하여 다양한 프로그래밍 설정에서 특별한 의미를 지닙니다. 실제로 물건을 쌓아놓은 것과 마찬가지로 스택에 마지막으로 올려놓은 항목은 스택에서 내려놓을 수 있는 첫 번째 항목이 됩니다. 일반적으로 스택에 항목을 추가하는 것을 스택에 항목을 “올려놓는다”라고 하고 스택에서 항목을 제거하는 것을 스택에서 항목을 “내려놓는다”라고 합니다. |
스택에 현재 위치를 올려놓은 다음 Local Settings 폴더로 이동하려면 다음과 같이 입력하십시오.
PS> Push-Location -Path "Local Settings"
그런 다음 스택에 Local Settings 위치를 올려놓은 후 다음과 같이 입력하여 Temp 폴더로 이동할 수 있습니다.
PS> Push-Location -Path Temp
다음과 같이 Get-Location 명령을 입력하여 디렉터리가 변경되었는지 확인할 수 있습니다.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
그런 다음 Pop-Location 명령을 입력하여 가장 최근에 방문한 디렉터리로 돌아간 후 Get-Location 명령을 입력하여 디렉터리가 변경되었는지 확인할 수 있습니다.
PS> Pop-Location PS> Get-Location Path ---- C:\Documents and Settings\me\Local Settings
Set-Location cmdlet을 사용할 때와 마찬가지로 Pop-Location cmdlet을 입력할 때 -PassThru 매개 변수를 포함하여 현재 위치한 디렉터리를 표시할 수 있습니다.
PS> Pop-Location -PassThru Path ---- C:\Documents and Settings\PowerUser
또한 Location cmdlet을 네트워크 경로와 함께 사용할 수도 있습니다. 예를 들어 Public이라는 공유가 있고 이름이 FS01인 서버가 현재 위치일 경우 다음과 같이 입력하여 이 위치를 변경할 수 있습니다.
Set-Location \\FS01\Public
또는
Push-Location \\FS01\Public
Push-Location 및 Set-Location 명령을 사용하여 현재 위치를 사용 가능한 아무 드라이브로나 변경할 수 있습니다. 예를 들어 드라이브 문자가 D인 로컬 CD-ROM에 데이터 CD가 들어 있는 경우 Set-Location D: 명령을 입력하여 현재 위치를 CD 드라이브로 변경할 수 있습니다.
드라이브가 비어 있으면 다음과 같은 오류 메시지가 나타납니다.
PS> Set-Location D: Set-Location : Cannot find path 'D:\' because it does not exist.
명령줄 인터페이스를 사용하는 경우 Windows 탐색기를 사용하여 사용 가능한 실제 드라이브를 찾기가 쉽지 않습니다. 또한 Windows 탐색기에 일부 Windows PowerShell 드라이브가 표시되지 않을 수도 있습니다. Windows PowerShell에는 Windows PowerShell 드라이브를 조작할 수 있는 일련의 명령이 포함되어 있습니다. 이러한 명령에 대해서는 다음 장에서 자세히 설명합니다.