C.W.K.
Stream
Lesson 04 of 12 · published

절대 경로 vs 상대 경로

~10 min · paths, absolute, relative

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

파일 가리키는 두 방법

절대 경로 는 root 부터 시작: /Users/me/projects/foo.txt. 어디 있든 같은 파일을 의미해. 상대 경로 는 현재 working directory 기준: projects/foo.txt = '내가 지금 있는 위치 아래의 projects/foo.txt'.

네비게이션 특수 토큰

  • . — 현재 디렉터리
  • .. — 부모
  • ~ — 홈
  • ~user — 그 사용자 홈
  • - (cd 전용) — 직전 디렉터리

조합: cd ../../sibling-project, cp ./local.txt ~/backups/.

언제 어느 쪽?

cron / CI 에서 도는 스크립트는 항상 절대 경로 — working directory 가 뭘지 모르니까. 인터랙티브 shell 작업은 상대 경로가 빠르고 자연스러워. 스크립트 맨 위 shebang 은 무조건 절대 (#!/usr/bin/env bash) — kernel 은 'current directory' 라는 개념 자체가 없어.

경로 해석

realpath foo.txt 가 상대 경로를 절대로 바꾸고 symlink 풀어줘. readlink -f 도 비슷 (Linux). macOS 는 coreutils 를 brew 로 깔거나 BSD 식 cd "$(dirname foo.txt)" && pwd -P.

Code

경로 사이 이동·bash
cd ~
ls projects/                # relative
ls /Users/$(whoami)/projects/    # absolute equivalent
cd ../../tmp                # relative w/ ..
realpath ../../tmp || readlink -f ../../tmp

External links

Exercise

홈에서 ls projects/ls /Users/$(whoami)/projects/ 둘 다 실행, 같은 출력 확인. cd /tmp 후 똑같이 — 상대 경로는 /tmp 에 projects 없으니까 실패, 절대 경로는 그대로 작동.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.