[linux] 리눅스 cd 명령어 실습 (절대경로, 상대경로)

- 3 mins

리눅스 cd (change directory) 명령어 기초

cd 명령어를 통해 경로를 이동할 때, 두 가지 방법을 사용할 수 있다.

바로 절대경로와 상대경로인데, 각각의 차이점을 알아보자.

현재 디렉토리가 /a/b/c/d 로 되어있다고 가정하자

우선 경로를 a의 하위 디렉토리인 b로 이동해보자.

이동 후에는 pwd로 현재 위치를 확인하는 습관을 들이는 것이 좋다.

cd /a/b/
pwd

image1

이제, 현재 위치 (/a/b/)를 기준으로 여러가지 방법으로 경로를 이동하며

절대경로와 상대경로에 대한 감을 잡을 것이다.

절대경로

절대경로란 최상위 디렉토리 (/)부터 시작해서 목표 디렉토리까지 가는 경로를 전부 기술하는 방식이다.

절대경로로 경로를 기술할 때에는 항상 맨 앞에 최상위 디렉토리 (/)가 붙는다는 것을 명심하자.

절대경로를 이용하여 b 디렉토리에서 d 디렉토리로 이동해보자.

cd /a/b/c/d/
pwd

image2

그리고 다시 b 경로로 이동해보자.

cd /a/b/
pwd

image3

이처럼 절대경로를 통해 경로 이동을 할 때에는 현재 위치에 상관 없이 똑같은 명령어를 입력하여 이동하게 된다.

절대 경로는 어렵지 않다. 그냥 최상위부터 해당 디렉토리가 위치하는 곳 까지의 경로를 차례대로 적어주면 되기 때문이다.

상대경로

상대경로는 ‘현재 자신이 있는 위치를 기준으로’ 이동을 하는 것이다.

그리고 현재 자신이 있는 위치는 .(마침표) 로 표기한다.

그럼 이번에는 상대경로를 활용하여 b 에서 d로 이동해보자.

설명이 와닿지 않는다면 아래의 예제로 확인하자.

cd ./c/d/
pwd

image4

/a/b/c/d/ 중에 /a/b/ 까지의 경로는 현재 자신의 위치이므로 . 으로 표기했다.

그리고 나머지 경로 /c/d/ 를 입력하여 경로 이동을 한 것을 볼 수 있다.

이번엔 상대경로를 활용하여 다시 b 경로로 이동해보자.

이전(상위) 디렉토리는 .. 으로 표기한다.

b 디렉토리로 이동을 위해서는 상위 디렉토리로 ‘2회’ 이동이 필요하다.

예제로 확인하자.

cd ../../
pwd

image5

상대경로에 대한 감이 좀 잡힐지 모르겠다.

그럼 이번에는 절대경로와 상대경로를 각각 활용하여 r 경로로 이동해보자

r 경로는 /q/w/e/r/ 에 위치해있다.

(저번 포스팅 마지막 부분의 실습 디렉토리 생성 참조)

절대경로는 무조건 최상위부터 시작하는 경로이므로 현재 위치를 고려할 필요가 없다.

다음과 같이 입력하면 r 경로로 이동된다.

(절대 경로는 일단 눈으로만 확인하고 상대경로로 실습해보자. )

cd /q/w/e/r/

상대경로로 이동할 때에는 현재 경로인 b 부터 이동하는 모든 과정을 고려해야한다.

다음과 같은 순서로 이동이 필요하다.

  1. a 로 이동 → ..

  2. / (최상위 디렉토리)로 이동 → ..

  3. q로 이동 → /q

  4. w로 이동 → /w

  5. e로 이동 → /e

  6. r로 이동 → /r

이를 한 줄의 명령어로 입력하면 다음과 같다.

(맨 마지막의 슬래쉬 (/)는 입력해도 되고 안해도 되지만 ‘디렉토리’라는 것을 확실히 나타내기 위해 편의상 입력한다)

cd ../../q/w/e/r/
pwd

image6

실습을 하며 느꼈겠지만, 절대경로와 상대경로는 어떤 방법이 무조건 더 좋다고 할 수 없다.

그 때 그 때 상황에 따라 절대경로가 편할 때도 있고, 상대경로가 편할 때도 있는 것이다.

예를 들어,

/a/b/ 에서 d 로 이동 할 때에는 절대경로인 /a/b/c/d/ 보다는 상대경로인 ./c/d/ 로 이동하는 것이 편하고.

/a/b/ 에서 r 로 이동 할 때에는 절대경로인 /q/w/e/r/이 상대경로인 ../../q/w/e/r/ 보다 편한 것 처럼 말이다.

절대경로와 상대경로를 활용하여 이곳 저곳으로 이동하는 연습을 몇 번만 해보면 금방 손에 익숙해질것이다.

*주의사항*

만약 현재 위치가 b라고 가정할 때, .//a/b/ 를 의미하지만, 점(.) 하나를 빼 먹으면 최상위 디렉토리 (/)를 의미하게 된다.

디렉토리 이동 시에는 큰 상관이 없지만,

나중에 삭제나 이동 명령어를 사용 할 때에는 작은 실수가 돌이킬 수 없는 치명적인 결과를 낳을 수도 있기 때문에 유의해야한다.

현재 경로의 파일을 삭제하려다가 최상위 경로의 파일이 모두 날아갈 수 있기 때문이다.

기존 블로그 원문을 옮김




코딩장이

코딩장이

-장이: [접사] ‘그것과 관련된 기술을 가진 사람’의 뜻을 더하는 접미사.

rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora