| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- terminal
- UNIX
- linuxcommand
- shell
- 시스템관리
- 명령어
- Solaris
- 자바스크립트
- 유닉스
- Unix명령어
- cups
- 리눅스
- PackageManagement
- JavaScript
- bash
- 터미널
- js
- 유닉스명령어
- linux
- 정규표현식
- 사용자관리
- 쉘스크립트
- 파일시스템
- environment
- sysadmin
- php
- UnixCommand
- coreutils
- tcsh
- 리눅스명령어
Archives
- Today
- Total
ioerror
pushd 사용법 및 옵션 - 현재 디렉터리를 디렉터리 스택에 저장하고 새로운 디렉터리로 이동하는 명령어 본문
반응형

pushd - Push Directory
pushd는 현재 작업 디렉터리를 디렉터리 스택(Directory Stack)에 저장(Push)하고 동시에 지정한 다른 디렉터리로 이동하는 셸 내장 명령어이다. 주로 복잡한 디렉터리 구조를 넘나들며 작업할 때 이전 디렉터리 경로를 기억해 두었다가 나중에 쉽게 되돌아오기 위한 목적으로 사용된다. Bash, Zsh, Tcsh 등 대부분의 주요 셸 환경에서 기본적으로 지원된다.
1. 명령어 용도
- 복잡한 빌드 스크립트나 배포 과정에서 여러 디렉터리를 임시로 이동하여 작업을 수행한 뒤, 원래의 작업 디렉터리로 정확하게 복귀해야 할 때 주로 사용된다.
- cd 명령어와 달리 이동 경로의 이력이 스택에 기록되므로, 여러 단계 이전의 디렉터리로 역추적하여 이동할 때 유용하다.
많이 발생하는 상황에서의 사용 예시
- 특정 프로젝트 빌드 디렉터리로 이동하여 컴파일을 수행한 후 다시 원래 소스 디렉터리로 복귀하는 상황
- 여러 셸 스크립트 모듈을 순차적으로 실행하면서 각 모듈의 대상 디렉터리를 스택에 쌓고 차례대로 꺼내어 작업하는 상황
2. 명령어 서식
pushd [옵션] [디렉터리 | +N | -N]
3. 명령어 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| dir | 현재 디렉터리를 스택에 넣고 dir 디렉터리로 이동한다. | 공통 |
| +N | 스택의 왼쪽(시작 부분)에서부터 $N$번째 디렉터리를 스택의 맨 위로 가져오고 그 디렉터리로 이동한다. (0부터 시작) | 공통 |
| -N | 스택의 오른쪽(끝 부분)에서부터 $N$번째 디렉터리를 스택의 맨 위로 가져오고 그 디렉터리로 이동한다. (0부터 시작) | 공통 |
| -n | 디렉터리를 실제로 이동하지 않고 디렉터리 스택의 내용만 조작한다. | [Bash] [Zsh] |
명령어 옵션 사용시 결과 예시
# 1. 현재 디렉터리(/home/user)에서 /var/log 디렉터리로 이동하며 스택에 저장
/home/user$ pushd /var/log
# /var/log /home/user
# (결과로 현재 스택에 쌓인 디렉터리 목록이 좌측부터 차례대로 출력된다.)
# 2. 다시 /etc 디렉터리로 이동하며 스택에 저장
/var/log$ pushd /etc
# /etc /var/log /home/user
# 3. 디렉터리 이동 없이 스택 순서만 순환 변경 (+1 옵션 사용으로 두 번째 항목을 맨 앞으로 이동)
/etc$ pushd +1
# /var/log /home/user /etc
# (실제 작업 디렉터리가 /var/log로 변경된다.)
# 4. 실제 디렉터리 이동은 하지 않고 스택에만 디렉터리를 추가하는 -n 옵션 사용
/var/log$ pushd -n /tmp
# /var/log /tmp /home/user /etc
# (현재 디렉터리는 여전히 /var/log이지만 스택의 두 번째 위치에 /tmp가 삽입된다.)
- 출력 결과의 의미: pushd 실행 후 한 줄로 출력되는 디렉터리 명단은 현재 디렉터리 스택의 상태를 의미한다. 가장 왼쪽에 표시되는 디렉터리가 현재 머무르고 있는 작업 디렉터리이며, 오른쪽으로 갈수록 먼저 쌓였던 이전 디렉터리 경로를 나타낸다.
4. 명령어 특이사항(유의사항)
- pushd는 독립적인 실행 파일이 아니라 셸에 내장된 'Shell Builtin' 명령어이다. 따라서 which pushd를 실행하면 경로가 나오지 않으며, 반드시 지원하는 셸 환경 내에서 실행해야 작동한다.
- 스택에 저장된 디렉터리를 꺼내어 이전 위치로 되돌아가려면 짝이 되는 명령어인 popd를 사용해야 한다.
- 스택의 목록을 확인하고 싶을 때는 dirs 명령어를 사용하며, dirs -v를 사용하면 인덱스 번호와 함께 스택 내용을 명확히 볼 수 있다.
관련 명령어들
- popd: 디렉터리 스택의 최상단 디렉터리를 제거하고, 그 바로 아래에 있던 디렉터리로 이동한다.
- dirs: 현재 디렉터리 스택의 내용을 보여준다.
- cd: 디렉터리를 이동하는 기본 명령어이나 스택에 경로를 저장하지 않는다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| pwck 사용법 및 옵션 - 비밀번호 파일의 무결성 검사 (0) | 2026.07.16 |
|---|---|
| pw - 지정한 사용자의 비밀번호 또는 패스워드 에이징 정보를 변경 및 관리 (0) | 2026.07.16 |
| ps 사용법 및 옵션 - 현재 실행 중인 프로세스의 상태를 확인하는 명령어 (0) | 2026.07.16 |
| printenv 사용법 및 옵션 - 환경 변수의 값을 출력하거나 전체 환경 변수 목록을 조회하는 명령어 (0) | 2026.07.16 |
| popd 사용법 및 옵션 - 디렉터리 스택에서 최상단 디렉터리를 제거하고 이동하는 명령어 (0) | 2026.07.16 |
Comments