SW/리눅스

Linux : Pushd 와 Popd 명령어, 예제, 사용 방법

얇은생각 2022. 3. 3. 07:30
반응형

pushd와 popd는 사용자가 디렉터리 스택을 사용하고 Linux 및 기타 유닉스 계열 운영 체제에서 현재 작업 디렉터리를 변경할 수 있도록 하는 명령입니다. pushd와 popd는 매우 강력하고 유용한 명령이지만 평가절하되어 거의 사용되지 않습니다.

pushd 및 popd 명령을 사용하여 시스템의 디렉터리 트리를 탐색하는 방법을 보여 줍니다.

 

 

Linux : Pushd and Popd 명령어, 예제, 사용 방법

 

 

디렉터리 스택

디렉토리 스택은 이전에 탐색한 디렉토리 목록입니다. 디렉터리 스택의 내용은 dirs 명령을 사용하여 볼 수 있습니다. 디렉터리는 pushd 명령을 사용하여 디렉터리로 변경할 때 스택에 추가되고 popd 명령을 사용하여 제거됩니다.

현재 작업 디렉토리는 항상 디렉터리 스택의 맨 위에 있습니다. 현재 작업 디렉토리는 사용자가 현재 작업 중인 디렉토리(폴더)입니다. 명령줄과 상호 작용할 때마다 디렉토리 내에서 작업하게 됩니다.

pwd 명령을 사용하면 현재 어떤 디렉터리에 있는지 알 수 있습니다.

파일 시스템을 탐색할 때 Tab 키를 사용하여 디렉토리 이름을 자동으로 완성합니다. 디렉토리 이름 끝에 슬래시를 추가하는 것은 선택사항입니다.

pushd, popd 및 dir는 셸 내장이며, 그 동작은 셸마다 약간 다를 수 있습니다. Bash 내장 버전의 명령을 다루겠습니다.

 

 

 

Pushd 명령

pushd 명령의 구문은 다음과 같습니다.

pushd [OPTIONS] [DIRECTORY]

 

 

예를 들어 현재 디렉터리를 디렉터리 스택의 맨 위에 저장하고 /var/www로 변경하려면 다음을 입력합니다.

~$ pushd /var/www

# /var/www ~

 

 

성공하면 위의 명령이 디렉터리 스택을 인쇄합니다. ~는 pushd 명령을 실행한 디렉터리입니다. 틸드 기호 ~는 홈 디렉터리를 의미합니다.

pushd는 먼저 현재 작업 디렉토리를 스택 맨 위에 저장한 후 지정된 디렉토리로 이동합니다. 현재 디렉터리는 항상 스택의 맨 위에 있어야 하므로 변경한 후 새 현재 디렉터리는 스택 맨 위로 이동하지만 스택에는 저장되지 않습니다. 저장하려면 푸시드를 호출해야 합니다. cd를 사용하여 다른 디렉터리로 변경하면 스택의 맨 위 항목이 손실됩니다.

스택에 다른 디렉터리를 추가하겠습니다.

/var/www$ pushd /opt

# /opt /var/www ~

 

 

디렉토리 변경을 금지하려면 -n 옵션을 사용하십시오. 예를 들어 /usr/local 디렉토리를 스택에 추가하지만 스택으로 변경하지 않으려면 다음을 입력합니다.

/opt$ pushd -n /usr/local

 

 

현재 디렉터리(항상 맨 위에 있음)는 변경되지 않으므로 /usr/local 디렉터리는 스택 맨 위에서 두 번째로 추가됩니다.

/opt /usr/local /var/www ~

 

 

푸시드에는 스택의 N번째 디렉토리로 이동할 수 있는 +N 및 -N 두 가지 옵션이 있습니다. +N 옵션은 0부터 시작하여 스택 목록 카운트의 N번째 요소로 변경됩니다. -N을 사용할 때 카운트의 방향은 오른쪽에서 왼쪽으로입니다.

옵션을 더 잘 설명하기 위해 현재 디렉터리 스택을 인쇄해 보겠습니다.

출력에 디렉터리 스택의 인덱스 목록이 표시됩니다.

/opt$ dirs -l -v

#  0  /opt
#  1  /usr/local
#  2  /var/www
#  3  /home/linuxize

 

 

/var/www 디렉터리로 변경하고 스택 맨 위로 가져오려면 다음 중 하나를 사용합니다.

위에서 아래로(또는 왼쪽에서 오른쪽으로) 셀 때 디렉토리 색인은 2입니다.

pushd +2

 

 

아래에서 위로 숫자를 셀 때 /var/www 디렉터리의 색인은 1입니다.

pushd -1.

 

 

인수 없이 사용할 경우, pushd는 상위 두 디렉토리를 전환하고 새 상단을 현재 디렉토리로 만듭니다. 이것은 cd - 명령을 사용할 때와 같습니다.

 

 

 

popd 명령

popd 명령은 다음과 같은 형식을 취합니다.

popd [OPTIONS]

# /opt /usr/local /var/www /etc/nginx ~

                                               

 

인수가 없으면 popd는 스택에서 상단 디렉토리를 제거하고 새 상단 디렉토리로 이동합니다.

다음과 같은 디렉터리 스택이 있다고 가정해 보겠습니다.

popd 명령을 실행하면 스택에서 /opt가 제거되고 /usr/local 디렉토리로 변경됩니다.

/opt$ popd

# /usr/local /var/www /etc/nginx ~

 

 

출력에 새 디렉터리 스택이 표시됩니다.

-n 옵션은 기본 디렉터리 변경을 억제하고 스택에서 두 번째 항목을 제거합니다.

/opt$ popd -n

# /usr/local /etc/nginx ~

 

 

popd는 pushd와 마찬가지로 스택의 N번째 디렉토리를 제거하는 데 사용할 수 있는 +N 및 -N 옵션도 허용합니다.

/opt$ popd +1

# /usr/local ~

 

 

일반적으로 cd 명령을 사용하여 한 디렉토리에서 다른 디렉토리로 이동합니다. 그러나 명령줄에 많은 시간을 할애할 경우 pushd 및 popd 명령을 사용하면 생산성과 효율성이 향상됩니다.

반응형