리눅스 명령어 cd 사용법 8가지

리눅스를 이용하게 되면 터미널을 사용하게 되며 cd 명령어를 떼어놓고 쓸 수 없습니다. 리눅스 명령어 cd 사용법에 대해서 함께 살펴보겠습니다.

리눅스 명령어 cd 기본 사용법

cd 명령어는 change directory의 줄임말로 현재 작업 중인 디렉터리를 사용자가 지정한 다른 디렉터리로 변경할 때 사용합니다.

cd [옵션] [디렉터리]
ShellScript

하위 디렉터리로 이동

아래의 명령어는 현재 작업 디렉터리의 하위 디렉터리인 test 디렉터리로 작업 디렉터리를 변경합니다.

cd test
ShellScript
그림 1. 리눅스 명령어 cd: 하위 디렉터리로 이동
그림 1. 리눅스 명령어 cd: 하위 디렉터리로 이동

상위 디렉터리로 이동

상위 디렉터리는 점을 두 개 사용하여 ..을 이용합니다. cd ..은 디렉터리 계층 구조에서 상위 디렉터리로 이동합니다.

cd ..
ShellScript
그림 2. 리눅스 명령어 cd: 상위 디렉터리로 이동
그림 2. 리눅스 명령어 cd: 상위 디렉터리로 이동

상대 경로로 이동

현재 디렉터리를 기준으로 상위 디렉터리의 하위에 있는 Downloads 디렉터리로 이동하는 방법입니다.

cd ../relative/path
ShellScript
그림 3. 리눅스 명령어 cd: 상대 경로로 이동
그림 3. 리눅스 명령어 cd: 상대 경로로 이동

절대 경로로 이동

절대 경로로 작업 디렉터리를 변경하고 싶다면 cd 명령어 뒤에 특정 디렉터리의 전체 경로를 적어주면 됩니다.

cd /absolute/path
ShellScript
그림 4. 리눅스 명령어 cd: 절대 경로로 이동
그림 4. 리눅스 명령어 cd: 절대 경로로 이동

이전 디렉터리로 이동

마지막으로 cd 명령어를 사용했던 직전 작업 디렉터리로 이동합니다.

cd -
ShellScript

아래 그림의 예시에서는 ~/linux 디렉터리에서 /etc/init.d 디렉터리로 이동한 후, 직전 디렉터리인 ~/linux로 돌아갔다가 다시 바로 직전 디렉터리인 /etc/init.d로 돌아가 보았습니다. cd 명령어를 입력했을 때 이전 작업 디렉터리가 어디인지 명확히 전체 경로를 알려준 다음 이동합니다.

그림 5. 리눅스 명령어 cd: 이전 디렉터리로 이동
그림 5. 리눅스 명령어 cd: 이전 디렉터리로 이동

홈 디렉터리로 이동

리눅스에서 홈 디렉터리는 ~(tilde)로 표현합니다. 아래 명령어는 홈 디렉터리로 이동합니다.

cd ~
ShellScript

현재 작업 디렉터리가 어디이든 간에 사용자의 홈 디렉터리로 이동합니다.

그림 6. 리눅스 명령어 cd: 홈 디렉터리로 이동
그림 6. 리눅스 명령어 cd: 홈 디렉터리로 이동

옵션 사용 방법

cd 명령어에 특수한 옵션이 있습니다. 그건 바로 상위 디렉터리(..)로 이동할 때 사용하는 -L 옵션과 -P 옵션입니다. 옵션을 별도로 지정하지 않으면 기본적으로 -L 옵션이 기본적으로 적용됩니다.

-L 옵션은 논리적(logical)으로 상위 디렉터리인 것을 의미하고, -P 옵션은 물리적(physical)으로 상위 디렉터리인 것을 의미합니다. 어떤 경우에 적용이 가능한지 예시를 들어보겠습니다.

ln -s ~/Pictures/Screenshots shots
cd shots
cd ..
cd shots
cd -P ..
ShellScript
  • 라인 1: ln 명령어를 사용해서 ~/Pictures/Screenshots 디렉터리를 홈 디렉터리에 shots라는 심볼릭 링크를 생성합니다.
  • 라인 2: 심볼릭 링크 shots로 이동합니다.
  • 라인 3: 논리적 상위 디렉터리인 홈 디렉터리로 이동합니다.
  • 라인 4: 다시 심볼릭 링크인 shots로 이동합니다.
  • 라인 5: 물리적 상위 디렉터리인 ~/Pictures 디렉터리로 이동합니다. 즉, 여기에서 말하는 물리적이라는 기준은 심볼릭 링크 기준이 아니라 심볼릭 링크의 원본 경로를 기준으로 한다는 것을 의미합니다.

위의 명령들을 입력한 결과는 아래 그림과 같습니다.

그림 7. 리눅스 명령어 cd 옵션 사용법
그림 7. 리눅스 명령어 cd 옵션 사용법

환경변수 사용법

export 명령을 사용해서 특정 경로를 설정한 경우, 해당 변수명을 이용한 디렉터리 변경이 가능합니다.

export MYDIR=/path/to/directory
cd $MYDIR
ShellScript

아래 그림은 환경 변수를 사용한 경로 변경의 예시입니다.

그림 8. 리눅스 명령어 cd 환경변수와 함께 사용
그림 8. 리눅스 명령어 cd 환경변수와 함께 사용

이전 경로들을 모두 기억하는 방식: pushd & popd

cd 명령어를 사용해서 이전 경로를 모두 기억할 수는 없습니다. 기껏해야 직전 경로 정도를 오갈 수 있는 정도가 다입니다.

pushd를 이용해서 디렉터리 스택에 추가하고 popd를 이용해서 스택에 저장된 마지막 디렉터리로 돌아갑니다.

pushd

아래는 pushd를 이용해서 경로를 변경할 때마다 해당 경로를 스택에 추가하는 것을 보여줍니다.

그림 9. 디렉터리 스택에 경로 쌓기: pushd 명령어
그림 9. 디렉터리 스택에 경로 쌓기: pushd 명령어

dirs

dirs 명령어를 사용하면 스택에 쌓여있는 경로들을 보여줍니다.

그림 10. 디렉터리 스택에 쌓인 경로 확인하기: dirs
그림 10. 디렉터리 스택에 쌓인 경로 확인하기: dirs

popd

popd를 입력할 때마다 제일 앞의 현재 경로를 삭제하면서 마지막 경로로 돌아갑니다.

그림 11. 디렉터리 스택에서 마지막 경로로 돌아가기: popd
그림 11. 디렉터리 스택에서 마지막 경로로 돌아가기: popd

여러 경로를 이동하면서 작업하고 다시 해당 경로를 거쳐서 작업을 해야 하는 경우에 유용하게 사용할 수 있는 방법입니다.

주의사항

Linux 운영체제는 기본적으로 Windows 운영체제와는 달리 대문자와 소문자를 다르게 처리합니다. 따라 경로를 입력할 때에는 대문자와 소문자를 정확히 입력해 주셔야 합니다. 정확히 입력하지 않으면 아래 그림과 같이 “No such file or directory”라는 메시지를 만나게 됩니다.

그림 12. 경로를 정확하게 입력하지 않는 경우 발생하는 메시지
그림 12. 경로를 정확하게 입력하지 않는 경우 발생하는 메시지

정리

cd 명령어를 이용해서 작업 디렉터리를 이동하는 방법에 대해서 상세히 살펴봤습니다. 단순한 경로 이동에서부터 특수한 옵션 사용법을 살펴봤습니다. 그리고 pushd와 popd라는 아주 특수한 명령어까지 함께 살펴봤습니다. 이 부분들에 대해 숙지하면 리눅스 파일 시스템을 보다 효율적으로 사용할 수 있을 것입니다. 추가 질문이나 더 구체적인 예제가 필요하면 언제든지 물어보세요! 🙂

Reference

관련 포스트

Leave a Comment