리눅스 / 명령어 / cd / 다른 디렉토리로 이동하는 명령어
Linux에서 cd 명령은 현재 셸의 작업 디렉터리를 바꿉니다. 예를 들어 cd /etc로 이동한 뒤 pwd를 실행하면 현재 위치를 확인할 수 있습니다.
현재 위치 확인하고 이동하기
cd는 change directory의 약자이며 Bash 등의 셸에 내장된 명령입니다. 이동할 디렉터리를 인수로 지정합니다. 다음 명령은 /etc로 이동하고 그 위치를 표시합니다.
cd /etc
pwd
이동에 성공하면 일반적으로 cd 자체는 아무 내용도 출력하지 않습니다. pwd가 /etc를 표시하는지 확인하세요. 이동은 파일을 옮기거나 내용을 변경하는 작업이 아니라 현재 셸의 기준 위치를 바꾸는 것입니다. 다른 터미널의 작업 디렉터리는 바뀌지 않습니다.
절대 경로와 상대 경로
절대 경로는 루트 디렉터리 /에서 시작합니다. 예를 들어 어느 위치에서든 다음 명령은 /var/log를 지정합니다. 해당 디렉터리가 존재하고 접근할 수 있어야 합니다.
cd /var/log
pwd
상대 경로는 현재 위치를 기준으로 합니다. 예를 들어 /var로 이동한 다음 그 안의 log로 이동하려면 다음과 같이 실행합니다.
cd /var
cd ./log
pwd
성공하면 /var/log가 표시됩니다. .은 현재 디렉터리를 뜻하므로 ./log는 현재 위치의 log입니다. Bash에서 CDPATH가 설정되어 있다면 cd log는 다른 검색 경로를 사용할 수 있지만, cd ./log는 현재 디렉터리를 명시합니다. 이동이 실패하면 다음 명령을 실행하기 전에 오류를 해결하세요.
상위 디렉터리와 이전 위치로 이동하기
..은 상위 디렉터리를 뜻합니다. 현재 위치가 /var/log라면 다음 명령으로 /var로 이동합니다.
cd ..
pwd
이전에 있던 디렉터리로 돌아가려면 다음 명령을 사용합니다.
cd -
Bash의 cd -는 이전 작업 디렉터리로 이동하고 그 경로를 출력합니다. 이전 위치가 아직 설정되지 않았거나 접근할 수 없다면 실패할 수 있습니다. 위 예제에서 직전에 /var/log에서 /var로 이동했다면 다시 /var/log로 돌아갑니다.
홈 디렉터리로 이동하기
경로 없이 cd를 실행하면 Bash는 HOME 변수에 설정된 홈 디렉터리로 이동합니다. ~도 보통 현재 사용자의 홈 디렉터리로 확장됩니다.
cd
pwd
홈 디렉터리 위치는 계정과 설정에 따라 다르므로 항상 /home/user이라고 가정하지 마세요. cd ~/Documents는 홈 아래의 Documents로 이동하며, 해당 디렉터리가 없으면 실패합니다. Bash의 cd ~user는 user를 실제 계정 이름으로 바꿔 그 계정의 홈 경로를 지정하는 방법입니다. 다른 사용자로 로그인하거나 권한을 얻는 명령은 아니며, 대상에 접근할 권한이 있어야 합니다.
공백과 심볼릭 링크가 있는 경로
디렉터리 이름에 공백이 있으면 경로를 따옴표로 묶습니다. 아래 예제는 현재 디렉터리에 my folder가 있을 때 사용합니다.
cd "my folder"
홈 경로를 사용할 때는 ~를 따옴표 밖에 두고 나머지를 묶을 수 있습니다. 다음은 홈 아래에 my folder가 있을 때의 예입니다.
cd ~/"my folder"
심볼릭 링크를 통해 이동했다면 표시되는 경로와 실제 디렉터리 경로가 다를 수 있습니다. Bash의 pwd -P는 물리적 경로를 표시합니다. cd -P는 링크를 해석한 물리적 경로 기준으로 이동하며 .. 처리 결과가 기본 방식과 달라질 수 있습니다. 자세한 내용은 Bash의 cd와 pwd 설명을 확인하세요.
이동이 안 될 때 확인하기
- 경로를 찾지 못함: 철자와 대소문자, 현재 위치를 확인하고
ls로 해당 이름이 있는지 살펴보세요. 파일은 디렉터리가 아니므로cd로 들어갈 수 없습니다. - Permission denied: 대상과 경로의 상위 디렉터리에 접근하는 데 필요한 검색 권한이 있는지 확인합니다. 임의로 권한을 바꾸기보다 관리자에게 필요한 접근을 요청하세요.
- 예상과 다른 위치:
pwd와pwd -P를 비교하고 심볼릭 링크나CDPATH설정을 확인하세요.
Bash에서 help cd로 내장 명령의 도움말을 볼 수 있습니다. 스크립트에서는 cd가 실패했을 때 이후 작업을 계속하지 않도록 종료 상태를 확인해야 합니다.




