본 문서는 macOS Sonoma 버전 14.2.1 환경에서 진행되고 있습니다. macOS에서는 사용자의 홈 디렉토리가 /Users/username 형태로 지정되어 있습니다. Linux 환경에서는 사용자의 홈 디렉토리가 /home/username으로 설정되어 있으니 각 운영 체제에 따라 해당 경로를 적절히 참조해 주시기 바랍니다.
설명
cd
명령어는 ‘Change Directory’의 약자로 사용자의 쉘 작업 디렉토리를 변경하는 기본적인 명령어이다.
cd [-L|[-P [-e]] [-@]] [dir]
cd
명령어는 쉘의 현재 디렉토리를 DIR
로 변경한다.
만약 DIR
이 지정되지 않은 경우, 환경변수 HOME
의 값으로 설정된 디렉토리로 이동한다.
아래의 옵션들을 통해 경로 변경의 행동을 조정할 수 있다.
옵션
-L
심볼릭 링크를 따라가도록 강제한다.
DIR
내의 ..
처리 후 심볼릭 링크를 해석한다.
/Users
아래에 actualDocs
디렉토리가 있고 이 곳에 project
디렉토리가 있다고 가정하자.
mkdir -p ~/actualDocs/project
actualDocs
에 대한 심볼릭 링크로 linkedDocs
를 생성한다.
ln -s ~/actualDocs ~/linkedDocs
linkedDocs
로 이동한 후 project
폴더에 접근하고 그 위치에서 상위 디렉토리로 이동한다.
cd ~/linkedDocs
cd -L project/..
심볼릭 링크를 통해 project
디렉토리에 접근하지만, ..
를 처리할 때는 linkedDocs
의 위치로 돌아온다.
-P
심볼릭 링크를 따라가지 않고 물리적인 디렉토리 구조를 사용한다.
DIR
에서 ..
를 처리하기 전에 심볼릭 링크를 해석한다.
동일한 linkedDocs
디렉토리를 사용해 project
폴더로 이동 후, P
옵션을 사용해 상위 디렉토리로 이동한다.
cd ~/linkedDocs/project
cd -P ../..
P
옵션은 심볼릭 링크를 무시하고 물리적 경로를 따라 ~/
로 이동한다.
-e (v5.0.17 redhat-linux-gnu)
P
옵션과 함께 사용될 경우 현재 작업 디렉토리를 성공적으로 결정할 수 없으면 0이 아닌 상태로 종료한다.
존재하지 않는 디렉토리로 이동을 시도한다.
cd -P -e /nonexistent_directory
실패 시 0이 아닌 상태 코드를 반환한다.
Macos, Ubuntu 환경에서 위 명령어를 확인할 수 없어 생략한다.
경로
틸다 (~)
틸다(~
)는 현재 로그인한 사용자의 홈 디렉토리를 나타낸다.
사용자 이름이 junhyeok
인 경우 ~
는 /Users/junhyeok
의 경로를 대체하는 단축표현이다.
cd ~
명령을 입력하면 사용자는 자신의 홈 디렉토리로 이동한다.
다른 사용자의 홈 디렉토리에 접근하려면 ~[username]
형태로 사용할 수 있다.
점 (.)
단일 점(.
)은 현재 디렉토리를 나타낸다. 스크립트에서 현재 디렉토리의 위치를 지정할 때 사용된다.
./script.sh
는 현재 디렉토리에 있는 script.sh
스크립트를 실행하라는 명령이다.
두 개의 점 (..)
두 개의 점(..
)은 상위 디렉토리, 즉 현재 디렉토리의 부모 디렉토리를 나타낸다.
cd ..
명령을 사용하면 한 단계 위 디렉토리로 이동한다.
현재 /Users/junhyeok/documents
에 있다면, cd ..
명령을 실행하면 /Users/junhyeok
으로 이동하게된다.
슬래시 (/)
슬래시(/
)는 리눅스 파일 시스템의 루트 디렉토리를 나타낸다.
모든 파일과 디렉토리의 최상위 시작점이다.
cd /
명령을 입력하면 시스템의 루트 디렉토리로 이동한다.
References
https://linuxcommand.org/lc3_man_pages/cdh.html
https://product.kyobobook.co.kr/detail/S000212326688
'CSE > Linux' 카테고리의 다른 글
[Linux] rmdir 명령어 및 옵션 총 정리 (0) | 2024.04.30 |
---|---|
[Linux] mkdir 명령어 및 옵션 총 정리 (0) | 2024.04.29 |
[Linux] pwd 명령어 및 옵션 총 정리 (2) | 2024.04.27 |
[Linux] more 명령어 및 옵션 총 정리 (0) | 2024.04.26 |
[Linux] 리눅스 정리 (2) | 2024.04.26 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!