핵심 요약
- 현재 작업 디렉토리를 변경하려면 cd 명령어를 사용하고, 현재 위치한 디렉토리를 확인하려면 pwd 명령어를 사용합니다.
- /(슬래시)는 루트 디렉토리로, -(하이픈)은 이전 디렉토리로 이동할 때 사용합니다.
- ~(틸드)를 사용하면 로그인한 사용자의 홈 디렉토리로 바로 이동할 수 있습니다.
이 글에서는 리눅스에서 디렉토리를 변경하는 방법을 설명합니다. 다음 내용은 모든 리눅스 배포판에 동일하게 적용됩니다.
리눅스의 작업 디렉토리 개념
리눅스의 cd(change directory) 명령어는 현재 디렉토리를 변경하는 역할을 합니다. 주로 셸 세션(예: 그래픽 데스크톱에서 터미널 창을 실행한 상태)에서 현재 작업 디렉토리를 바꿀 때 사용됩니다.
그래픽 환경에서 리눅스를 사용할 때는 현재 작업 디렉토리를 의식할 일이 거의 없습니다. 하지만 셸에서 작업할 경우, 시스템은 별도로 지정하지 않는 한 현재 디렉토리가 곧 작업 범위라고 간주합니다. 예를 들어 LibreOffice Writer에서 파일을 저장하면 기본적으로 홈 디렉토리에 저장되지만, 셸에서 텍스트 편집기로 파일을 저장하면 현재 작업 디렉토리에 저장됩니다.
현재 어떤 디렉토리에 있는지 확인하려면 pwd(print working directory) 명령어를 사용하세요. 이름 그대로 작업 디렉토리 경로를 표준 출력으로 출력해 줍니다.
cd 명령어로 현재 작업 디렉토리 변경하기
cd 명령어는 그 단순함만으로도 우아한 명령어입니다.
이 명령어는 옵션을 두 개만 지원하며, 실제로 자주 쓰이지 않습니다:
- -P: 물리적 디렉토리 구조를 사용하고 심볼릭 링크를 무시합니다.
- -L: 심볼릭 링크를 따라가도록 강제합니다.
cd 명령어에서 절대 경로와 상대 경로 활용하기
cd 명령어에는 절대 경로(absolute pathname) 또는 상대 경로(relative pathname)를 사용할 수 있습니다. 절대 경로는 루트 디렉토리(/)부터 시작하는 반면, 상대 경로는 현재 작업 디렉토리를 기준으로 지정합니다.
예를 들어 현재 /var/www/html에 있는데 /var/www/html/img로 이동하려면 아래 두 명령어 중 어느 것이든 사용할 수 있습니다:
cd /var/www/html/img
cd img
파일시스템 이동 단축 기호
cd 명령어와 함께 사용할 수 있는 유용한 단축 기호는 다음과 같습니다:
- /: 루트 디렉토리로 이동합니다(슬래시).
- ..: 상위(부모) 디렉토리로 이동합니다(공백 없이 마침표 두 개).
- ~: 로그인한 사용자의 홈 디렉토리로 이동합니다(틸드).
- -: 이전에 있던 디렉토리로 이동합니다(하이픈).
사용하는 셸에 따라 프롬프트의 사용자 이름 뒤에 이러한 단축 기호나 현재 디렉토리 이름이 함께 표시되기도 합니다.
권한 문제 발생 시 대처 방법
리눅스에서는 디렉토리와 파일 모두에 권한(permission)이 적용됩니다. 일반적으로 모든 파일이나 디렉토리는 해당 객체의 소유자인지, 접근 권한을 부여받은 그룹에 속하는지, 아니면 전역적으로 승인된 사용자인지에 따라 읽기, 쓰기, 실행이 가능할 수 있습니다.
읽기 권한이 없는 디렉토리로 이동을 시도하면 오류가 발생합니다. 예를 들어 Bash 셸에서 일반 사용자 계정으로 /root 디렉토리에 접근하려고 하면 다음과 같은 오류 메시지가 나타납니다:
bash: cd: /root: Permission denied
이 경우 sudo 명령어처럼 상승된 권한으로 이동하거나, chmod 명령어를 사용해 해당 디렉토리의 권한을 변경하면 됩니다.