Linux 강좌 / 현재 위치 확인하고 이동하기 - pwd, ls, cd, tree

리눅스에서 디렉터리를 탐색할 때는 pwd로 현재 위치를 확인하고, ls로 내용을 본 다음, cd로 이동합니다. 하위 구조를 한눈에 보고 싶다면 tree를 사용할 수 있습니다. 이 강좌에서는 네 명령어를 이어 사용하면서 절대 경로와 상대 경로가 실제 이동에 어떻게 적용되는지 익힙니다.

먼저 현재 작업 디렉터리 확인하기

터미널에서 입력하는 상대 경로는 현재 작업 디렉터리를 기준으로 해석됩니다. 프롬프트에 경로가 표시되더라도 축약되거나 사용자 설정에 따라 달라질 수 있으므로, 정확한 위치를 알고 싶다면 pwd를 입력하세요.

pwd

예를 들어 계정 이름이 learner이고 홈 디렉터리에 있다면 다음과 비슷하게 출력됩니다. 실제 경로는 계정 설정에 따라 다릅니다.

/home/learner

pwd는 현재 위치를 바꾸지 않습니다. 심볼릭 링크를 거쳐 들어온 디렉터리에서는 논리 경로와 실제 경로가 다를 수 있습니다. Bash에서 물리적으로 해석한 경로를 보고 싶다면 pwd -P를 사용합니다.

디렉터리 내용 살펴보기

ls는 파일과 디렉터리의 이름을 보여 줍니다. 인수를 생략하면 현재 디렉터리를, 경로를 지정하면 해당 위치를 확인합니다. 아래 명령은 각각 현재 위치와 /etc의 목록을 요청합니다.

ls
ls /etc

예를 들어 ls /etc 결과에는 다음과 같은 이름이 나타날 수 있습니다. 아래는 설명을 위해 일부 항목만 적은 예시이며, 실제 목록과 출력 배치는 시스템마다 다릅니다.

hosts  passwd  ssh

실제 출력은 설치된 프로그램과 시스템 설정에 따라 달라집니다. 이름이 점(.)으로 시작하는 항목은 기본 목록에서 보이지 않는 경우가 많으므로, 숨김 항목까지 보려면 -a를 붙이세요. 권한·소유자·크기·수정 시각 등도 보려면 -l을 사용합니다.

ls -a
ls -l /etc

ls -l의 첫 글자는 파일 종류를 나타냅니다. d는 디렉터리, -는 일반 파일, l은 심볼릭 링크의 대표적인 예입니다. 자세한 정보의 읽는 법은 파일 종류와 정보 강좌에서 다룹니다. 이름만으로 대상이 디렉터리인지 확실하지 않다면 ls -ld 대상으로 대상 자체의 정보를 확인할 수 있습니다.

절대 경로와 상대 경로로 이동하기

cd는 현재 셸의 작업 디렉터리를 바꿉니다. 예를 들어 아래처럼 절대 경로를 지정하면 어디서 실행하든 /etc로 이동합니다. 바로 다음에 pwd를 실행해 결과를 확인하세요.

cd /etc
pwd

이 경우 pwd의 출력은 보통 다음과 같습니다.

/etc

현재 위치가 /etc일 때 cd ..는 상위 디렉터리인 /로 이동합니다. cd -는 직전에 있던 디렉터리로 돌아가며, Bash에서는 돌아간 경로를 출력합니다. 두 명령은 같은 셸에서 순서대로 실행해야 아래 설명과 맞습니다.

cd ..
pwd
cd -
pwd

위 순서에서 첫 pwd는 /, cd -와 마지막 pwd는 /etc를 보여 줍니다. 다른 명령으로 이동했다면 cd -의 결과도 달라집니다.

인수 없이 cd를 실행하면 홈 디렉터리로 이동합니다. cd ~도 현재 사용자의 홈 디렉터리로 이동하는 일반적인 Bash 표기입니다. 홈 디렉터리가 반드시 /home/사용자명인 것은 아니므로 이동 후에는 pwd로 확인하세요.

cd
pwd

하위 디렉터리 구조 보기

tree는 파일과 디렉터리의 계층을 들여쓰기로 표시합니다. ls가 한 단계의 목록을 확인하는 데 적합하다면, tree는 하위 구조를 파악할 때 유용합니다. 디렉터리가 큰 곳에서 전체 트리를 펼치면 출력이 길어질 수 있으므로 처음에는 깊이를 제한하세요.

tree -d -L 1 /etc

출력의 왼쪽 들여쓰기와 가지 표시를 따라가면 어느 디렉터리가 /etc 아래에 있는지 알 수 있습니다. 다음은 구조를 보여 주기 위한 축약 예시입니다. 실제 디렉터리 이름과 개수는 다릅니다.

/etc
├── ssh
└── systemd

-d는 디렉터리만 표시하고 -L 1은 표시 깊이를 한 단계로 제한합니다. 시스템에 tree가 없다면 command not found가 나올 수 있습니다. 그럴 때는 우선 ls로 살펴보고, 필요하다면 사용 중인 배포판의 패키지 관리 방법에 따라 tree를 설치하세요. 이 강좌의 나머지 실습에는 tree가 없어도 됩니다.

경로 탐색 실습

다음 순서대로 실행하면서 매번 현재 위치와 명령의 대상을 예상해 보세요. /etc의 실제 파일 목록은 컴퓨터마다 달라도 괜찮습니다. 실습은 파일을 만들거나 수정하지 않습니다.

  1. pwd로 출발 위치를 확인합니다.
  2. cd /etc로 이동한 뒤 pwd와 ls로 위치와 내용을 확인합니다.
  3. cd ..로 상위 디렉터리에 가서 pwd로 /인지 확인합니다.
  4. cd -로 직전의 /etc에 돌아가고, 마지막으로 cd로 홈 디렉터리에 돌아갑니다.

cd: ...: No such file or directory가 나오면 경로의 철자와 대소문자를 확인하세요. Permission denied는 해당 경로에 들어갈 권한이 없다는 뜻일 수 있습니다. 현재 위치가 헷갈리면 추측하지 말고 pwd부터 다시 실행하세요.

각 명령의 옵션과 예외를 더 자세히 알고 싶다면 pwd로 현재 경로 확인하기, ls로 목록 확인하기, cd로 디렉터리 이동하기, tree로 구조 보기를 참고하세요.

공식 문서

cd와 Bash의 pwd는 GNU Bash 내장 명령 문서, ls는 GNU Coreutils의 ls 문서, tree 옵션은 tree(1) 매뉴얼에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux getent 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / command - 명령어 검색과 별칭 우회 실행

Linux / 명령어 / command - 명령어 검색과 별칭 우회 실행

셸 command 명령어로 함수 검색을 건너뛰어 원래 명령을 실행하고, command -v로 명령 존재 여부를 확인하는 방법을 설명합니다. -p·-V 옵션과 builtin·exec·env의 차이도 정리합니다.

Linux / 명령어 / dmesg - 커널 메시지와 부팅 로그 확인

Linux / 명령어 / dmesg - 커널 메시지와 부팅 로그 확인

Linux dmesg 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

Linux nmap 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / gzip - 파일을 gzip 형식으로 압축하기

Linux / 명령어 / gzip - 파일을 gzip 형식으로 압축하기

Linux gzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux sudo 명령어로 허용된 명령을 root 또는 다른 사용자 권한으로 실행하는 방법을 설명합니다. 주요 옵션, 인증 캐시, 리디렉션 문제, visudo와 최소 권한 sudoers 설정 원칙을 정리합니다.

Linux / 명령어 / watch - 명령 결과를 주기적으로 반복 확인

Linux / 명령어 / watch - 명령 결과를 주기적으로 반복 확인

Linux watch 명령어로 명령 결과를 일정 간격으로 반복 확인하는 방법을 설명합니다. -n, -d, -g, -p 옵션과 파이프·따옴표 사용법, 메모리·디스크·프로세스 모니터링 예제를 정리합니다.

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux bzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / type - 명령어 유형과 실행 대상 확인

Linux / 명령어 / type - 명령어 유형과 실행 대상 확인

Bash type 명령어로 별칭, 예약어, 함수, 내장 명령과 실행 파일을 구분하는 방법을 설명합니다. 모든 후보와 경로 확인, command -v·which와의 차이 및 스크립트 활용법을 다룹니다.

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux dd 명령어로 파일과 블록 장치 데이터를 복사하고 변환하는 방법을 설명합니다. if와 of, 블록 크기, 진행률, 디스크 이미지 생성·복원 및 대상 장치 오지정 위험을 정리합니다.