다음을 통해 공유


Push-Location

현재 위치를 위치 스택의 맨 위에 추가합니다.

구문

Push-Location
    [[-Path] <String>]
    [-PassThru]
    [-StackName <String>]
    [<CommonParameters>]
Push-Location
    [-LiteralPath <String>]
    [-PassThru]
    [-StackName <String>]
    [<CommonParameters>]

Description

Push-Location cmdlet은 현재 위치를 위치 스택에 추가("푸시")합니다. 경로를 지정하는 경우 Push-Location 현재 위치를 위치 스택으로 푸시한 다음 현재 위치를 경로에 지정된 위치로 변경합니다. Pop-Location cmdlet을 사용하여 위치 스택에서 위치를 가져올 수 있습니다.

기본적으로 Push-Location cmdlet은 현재 위치를 현재 위치 스택으로 푸시하지만 StackName 매개 변수를 사용하여 대체 위치 스택을 지정할 수 있습니다. 스택이 없으면 Push-Location 만듭니다.

위치 스택에 대한 자세한 내용은 참고참조하세요.

예제

예제 1

다음은 현재 위치를 기본 위치 스택으로 푸시한 다음 위치를 C:\Windows변경하는 예제입니다.

PS C:\> Push-Location C:\Windows

예제 2

다음은 현재 위치를 RegFunction 스택으로 푸시하고 현재 위치를 HKLM:\Software\Policies 위치로 변경하는 예제입니다.

PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction

모든 PowerShell 드라이브(PSDrive)에서 Location cmdlet을 사용할 수 있습니다.

예제 3

이 명령은 현재 위치를 기본 스택으로 푸시합니다. 위치를 변경하지 않습니다.

PS C:\> Push-Location

예제 4 - 명명된 스택 만들기 및 사용

이러한 명령은 명명된 위치 스택을 만들고 사용하는 방법을 보여 줍니다.

PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>

첫 번째 명령은 현재 위치를 Stack2라는 새 스택에 푸시한 다음 현재 위치를 파일 시스템 공급자 드라이브에서 사용할 때 $HOME해당하는 타일드 기호(~)로 명령에 표시되는 홈 디렉터리로 변경합니다.

Stack2가 세션에 아직 없으면 Push-Location 만듭니다. 두 번째 명령은 Pop-Location cmdlet을 사용하여 Stack2 스택에서 원래 위치(C:\)를 팝합니다. StackName 매개 변수가 없으면 Pop-Location 명명되지 않은 기본 스택에서 위치를 표시합니다.

위치 스택에 대한 자세한 내용은 참고참조하세요.

매개 변수

-LiteralPath

새 위치의 경로를 지정합니다. Path 매개 변수와 달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

형식:String
별칭:PSPath, LP
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-PassThru

위치를 나타내는 개체를 파이프라인에 전달합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Path

현재 위치를 스택의 맨 위에 추가(푸시)한 후 이 경로에서 지정한 위치로 위치를 변경합니다. 공급자가 이 cmdlet을 지원하는 위치에 대한 경로를 입력합니다. 와일드카드가 허용됩니다. 매개 변수 이름은 선택 사항입니다.

형식:String
Position:1
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-StackName

현재 위치가 추가되는 위치 스택을 지정합니다. 위치 스택 이름을 입력합니다. 스택이 없으면 Push-Location 만듭니다.

이 매개 변수가 없으면 Push-Location 현재 위치 스택에 위치를 추가합니다. 기본적으로 현재 위치 스택은 PowerShell에서 만드는 명명되지 않은 기본 위치 스택입니다. 위치 스택을 현재 위치 스택으로 만들려면 Set-Location cmdlet의 StackName 매개 변수를 사용합니다. 위치 스택에 대한 자세한 내용은 참고참조하세요.

메모

Push-Location 현재 위치 스택이 아니면 명명되지 않은 기본 스택에 위치를 추가할 수 없습니다.

형식:String
Position:Named
Default value:Default stack
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

입력

String

경로(리터럴 경로는 아님)가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

PathInfo

PassThru 매개 변수를 사용하는 경우 이 cmdlet은 cmdlet 작업 후 현재 경로를 나타내는 PathInfo 개체를 반환합니다.

참고

PowerShell에는 Push-Location다음과 같은 별칭이 포함되어 있습니다.

  • 모든 플랫폼:
    • pushd

PowerShell은 프로세스당 여러 Runspace를 지원합니다. 각 Runspace에는 고유한 현재 디렉터리있습니다. 이는 [System.Environment]::CurrentDirectory것과 동일하지 않습니다. 이 동작은 명시적 디렉터리 경로를 제공하지 않고 .NET API를 호출하거나 네이티브 애플리케이션을 실행할 때 문제가 될 수 있습니다.

위치 cmdlet이 프로세스 전체의 현재 디렉터리를 설정했더라도 다른 Runspace에서 언제든지 변경할 수 있으므로 이 디렉터리에 의존할 수 없습니다. 위치 cmdlet을 사용하여 현재 Runspace와 관련된 현재 작업 디렉터리를 사용하여 경로 기반 작업을 수행해야 합니다.

스택은 가장 최근에 추가된 항목만 액세스할 수 있는 마지막 첫 번째 목록입니다. 항목을 사용하는 순서대로 스택에 추가한 다음 역순으로 사용할 항목을 검색합니다. PowerShell을 사용하면 위치 스택에 공급자 위치를 저장할 수 있습니다.

PowerShell은 명명되지 않은 기본 위치 스택을 만들고 명명된 여러 위치 스택을 만들 수 있습니다. 스택 이름을 지정하지 않으면 PowerShell은 현재 위치 스택을 사용합니다. 기본적으로 명명되지 않은 기본 위치는 현재 위치 스택이지만 Set-Location cmdlet을 사용하여 현재 위치 스택을 변경할 수 있습니다.

위치 스택을 관리하려면 다음과 같이 PowerShell 위치 cmdlet을 사용합니다.

  • 위치 스택에 위치를 추가하려면 Push-Location cmdlet을 사용합니다.

  • 위치 스택에서 위치를 얻으려면 Pop-Location cmdlet을 사용합니다.

  • 현재 위치 스택의 위치를 표시하려면 Get-Location cmdlet의 Stack 매개 변수를 사용합니다.

  • 명명된 위치 스택에 위치를 표시하려면 Get-Location cmdlet의 StackName 매개 변수를 사용합니다.

  • 새 위치 스택을 만들려면 Push-Location cmdlet의 StackName 매개 변수를 사용합니다. 존재하지 않는 스택을 지정하면 Push-Location 스택을 만듭니다.

  • 위치 스택을 현재 위치 스택으로 만들려면 Set-Location cmdlet의 StackName 매개 변수를 사용합니다.

명명되지 않은 기본 위치 스택은 현재 위치 스택인 경우에만 완전히 액세스할 수 있습니다. 명명된 위치 스택을 현재 위치 스택으로 만드는 경우 더 이상 Push-Location 또는 Pop-Location cmdlet을 사용하여 기본 스택에서 항목을 추가하거나 가져오거나 Get-Location cmdlet을 사용하여 명명되지 않은 스택의 위치를 표시할 수 없습니다. 명명되지 않은 스택을 현재 스택으로 만들려면 Set-Location cmdlet의 StackName 매개 변수를 $null 값 또는 빈 문자열("")과 함께 사용합니다.

기본 제공 별칭인 pushdPush-Location 참조할 수도 있습니다. 자세한 내용은 about_Aliases참조하세요.

Push-Location cmdlet은 모든 공급자가 노출하는 데이터를 사용하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 Get-PSProvider입력합니다. 자세한 내용은 about_Providers참조하세요.