터미널이나 Bash 스크립트에서 현재 작업 디렉토리를 변경하기 위해서 가장 많이 사용하는 명령어는 'cd' 명령이다.
cd 명령어
change directory 명령, 즉 cd 명령은 bash 명령을 배울 때, "Hello world" 프로그램처럼 가장 먼저 배우는 명령어다.
cd path
cd 명령뒤에 이동하려는 디렉토리 이름이나 경로를 입력하면 현재 작업 디렉토리를 변경하게 된다. 현재 작업 디렉토리는 `pwd` 명령을 이용해서 확인할 수 있다. (Present Working Directory의 약자겠지?)
일반적으로 cd 명령이면 쉘을 사용하는데 문제가 없다. 하지만 여러 디렉토리 경로를 오가는 경우 이전에 있었던 경로들을 기억해놓으면 좋다.
cd 명령어도 직전 디렉토리로 돌아가는 옵션을 제공하고 있다.
cd -
하지만 "cd -" 를 반복한다고 해서 이전에 작업하던 디렉토리를 계속 되돌리지는 않는다. "cd -"를 반복해서 입력하면 두 개의 디렉토리를 왔다갔다 할 뿐이다. 마치 TV 리모컨에서 "이전" 버튼을 계속 누르면 두 채널을 계속 왔다갔다하는 것처럼 말이다.
pushd, popd 명령어
현재 작업 디렉토리를 변경하면서 변경하기 직전의 작업 디렉토리를 계속 기억하고 싶으면 pushd, popd 명령을 이용하면 된다. 이름에서 유추할 수 있듯이 이 명령어들은 스택(Stack)에 현재 작업 디렉토리를 기억한다.
$ pushd /tmp
/tmp ~
$ pushd /etc
/etc /tmp ~
$ pwd
/etc
$ popd
/tmp ~
$ pwd
/tmp
$ popd
~
$ pwd
/Users/user
pushd 명령뒤에 이동하려는 경로를 넣으면 입력받은 경로가 스택에 입력되고, 현재 작업 디렉토리가 입력받은 경로로 설정된다. 위 예제에서 pushd 명령을 이용해서 여러번 디렉토리를 변경하고, popd 명령을 이용해서 하나씩 꺼내면서 pwd 명령을 이용해서 확인해보았다.
pushd 명령을 이용하면 현재 스택에 어떤 경로들이 입력되어있는지 출력된다.
pushd 명령과 popd 명령은 아무래도 Bash 스크립트를 작성할 때, 여러 경로를 이동하면서 동작을 해야하는 경우 유용하게 사용될 수 있다.
댓글