부동산·지원금·생활정책 업데이트 2026.06.05
IT

cd 명령어로 폴더 이동하는 방법과 경로 오류 해결 순서

2026.05.09 issuebreaker

리눅스 서버에서 cd 명령어로 폴더를 이동하는 기본 사용법과 경로 오류, 권한 오류를 구분해 해결하는 확인 순서를 정리했습니다.

터미널에서 파일을 열거나 명령어를 실행했는데 예상한 파일이 보이지 않거나, No such file or directory, Permission denied가 나오는 경우가 있습니다. 이 글은 리눅스 서버에서 cd 명령어로 폴더 이동하는 방법을 익히는 데서 끝내지 않고, 현재 경로가 꼬였을 때 무엇부터 확인해야 하는지, 상대경로와 절대경로를 어떻게 구분해야 하는지, 실제 서버 작업 중 자주 생기는 경로 오류를 어떻게 분리해서 해결하는지 정리합니다.

이 글에서 해결할 문제

cd는 현재 작업 디렉터리를 바꾸는 명령어입니다. 명령 자체는 단순하지만 서버 운영에서는 현재 위치를 잘못 잡아서 엉뚱한 파일을 수정하거나, 스크립트가 파일을 찾지 못하거나, 권한 문제를 경로 문제로 착각하는 일이 자주 생깁니다.

특히 SSH로 Ubuntu 서버에 접속해 Nginx 설정, Node.js 프로젝트, 로그 파일, WordPress 파일을 다룰 때는 같은 이름의 폴더나 파일이 여러 위치에 있을 수 있습니다. 그래서 cd를 쓸 때는 이동 명령보다 이동 전후 확인이 더 중요합니다.

  • 현재 내가 어느 폴더에 있는지 확인하는 방법
  • 절대경로와 상대경로를 구분하는 방법
  • No such file or directory 오류의 원인 분리
  • Permission denied가 경로 문제인지 권한 문제인지 확인하는 방법
  • 잘못된 위치에서 명령을 실행하지 않도록 재발을 줄이는 습관

먼저 확인할 핵심 요약

경로가 헷갈릴 때는 명령을 계속 입력하기보다 아래 순서로 멈춰서 확인하는 편이 빠릅니다.

pwd
ls -la
cd /확인한/정확한/경로
pwd
ls -la
확인 항목 명령어 판단 기준
현재 위치 pwd 내가 예상한 기준 경로인지 확인
폴더 목록 ls -la 이동하려는 디렉터리가 실제로 있는지 확인
디렉터리 권한 ls -ld 경로 접근 가능한 권한과 소유자인지 확인
현재 사용자 whoami 일반 사용자와 root 권한을 혼동하지 않았는지 확인

cd 자체는 파일을 삭제하거나 서비스를 재시작하지 않으므로 위험한 명령은 아닙니다. 다만 잘못된 폴더로 이동한 뒤 설정 파일을 수정하거나 실행 명령을 내리면 문제가 생길 수 있습니다. 그래서 수정이나 실행 전에 현재 경로를 먼저 확인해야 합니다.

cd 기본 사용법

절대경로로 이동

절대경로는 루트 디렉터리인 /부터 시작하는 경로입니다. 현재 위치와 관계없이 같은 위치를 가리키므로 서버 작업에서는 가장 명확합니다.

cd /var/www/html
pwd

예상 출력은 환경에 따라 조금 다를 수 있지만, 이동이 정상이라면 현재 위치가 아래처럼 표시됩니다.

/var/www/html

상대경로로 이동

상대경로는 현재 위치를 기준으로 계산됩니다. 예를 들어 현재 위치가 /home/ubuntu일 때 cd project를 실행하면 /home/ubuntu/project로 이동합니다.

pwd
cd project
pwd
/home/ubuntu
/home/ubuntu/project

하지만 현재 위치가 /var/www라면 같은 cd project/var/www/project를 의미합니다. 초보자가 가장 많이 헷갈리는 지점이 바로 이 부분입니다.

상위 폴더와 홈 디렉터리로 이동

한 단계 위로 이동할 때는 cd ..를 사용합니다. 홈 디렉터리로 돌아갈 때는 cd 또는 cd ~를 사용합니다.

cd ..
pwd

cd
pwd

작업 위치가 꼬였다고 느껴질 때는 홈 디렉터리로 돌아간 뒤 절대경로로 다시 이동하는 방식이 안전합니다.

직전 폴더로 돌아가기

cd -는 바로 직전에 있던 디렉터리로 돌아갑니다. 로그 폴더와 설정 폴더를 오갈 때 편하지만, 현재 위치를 놓치기 쉬우므로 중요한 작업 전에는 다시 pwd를 확인하는 것이 좋습니다.

cd /etc/nginx
cd /var/log/nginx
cd -
pwd

실제 서버 운영 중 헷갈리기 쉬운 지점

서버를 운영하다 보면 처음에는 명령어 문제처럼 보였지만 실제로는 현재 작업 디렉터리가 달라서 생긴 문제인 경우가 많습니다. 예를 들어 Node.js 프로젝트에서 npm install을 실행했는데 실패하면 패키지 문제로 보일 수 있습니다. 그런데 실제 원인은 package.json이 있는 프로젝트 폴더가 아니라 다른 폴더에서 실행한 것일 때가 있습니다.

이럴 때는 바로 재설치하거나 설정을 바꾸기보다 현재 위치와 파일 존재 여부부터 확인합니다.

pwd
ls -la
ls -l package.json

package.json이 없다는 메시지가 나오면, npm 문제가 아니라 현재 디렉터리가 잘못된 것입니다.

ls: cannot access 'package.json': No such file or directory

이 경우에는 프로젝트가 있는 정확한 경로로 이동한 뒤 다시 확인합니다.

cd /home/ubuntu/my-app
pwd
ls -l package.json

처음 의심하기 쉬운 원인과 실제 원인의 차이

화면에 보이는 상황 처음 의심하기 쉬운 원인 실제로 자주 확인해야 할 원인
No such file or directory 폴더가 삭제됨 현재 위치가 다르거나 경로 오타가 있음
Permission denied 명령어가 틀림 현재 사용자에게 디렉터리 접근 권한이 없음
파일을 수정했는데 반영되지 않음 서비스가 이상함 다른 경로의 같은 이름 파일을 수정함
스크립트가 파일을 못 찾음 스크립트 코드 오류 스크립트를 실행한 위치가 예상과 다름

운영 중에는 명령어 자체보다 현재 사용자, 현재 경로, 파일 소유자, 실행 위치가 원인인 경우가 많습니다. 그래서 오류 메시지를 본 뒤에는 먼저 pwd, ls -la, whoami를 확인하는 습관이 도움이 됩니다.

실제로 자주 막히는 상황

1. 폴더가 있는데 이동이 안 되는 경우

아래처럼 입력했는데 디렉터리가 없다는 메시지가 나올 수 있습니다.

cd /var/www/htm
bash: cd: /var/www/htm: No such file or directory

이때는 권한부터 의심하기보다 경로가 실제로 존재하는지 확인합니다.

pwd
ls -la /var/www
ls -ld /var/www/html

/var/www/html이 있는데 /var/www/htm으로 입력했다면 단순 오타입니다. 리눅스 파일명은 대소문자를 구분하므로 Html, html, HTML은 서로 다른 이름으로 취급됩니다.

2. 권한 때문에 이동이 안 되는 경우

경로는 맞지만 현재 사용자에게 접근 권한이 없으면 Permission denied가 나옵니다.

cd /root
bash: cd: /root: Permission denied

이 경우는 폴더가 없는 것이 아니라 접근 권한이 없는 상태입니다. 무리하게 권한을 넓히기보다 현재 사용자와 디렉터리 권한을 먼저 확인합니다.

whoami
id
ls -ld /root

/root는 보통 root 계정의 홈 디렉터리이므로 일반 사용자가 접근하지 못하는 것이 정상일 수 있습니다. 운영 서버에서 단순 이동 오류를 해결하려고 chmod 777처럼 권한을 크게 여는 방식은 권장하지 않습니다. 필요한 경우에는 해당 작업에 맞는 사용자, 그룹, 최소 권한을 따로 검토해야 합니다.

3. 공백이 있는 폴더명으로 이동하는 경우

폴더명에 공백이 있으면 쉘은 이를 여러 인자로 나누어 해석합니다. 예를 들어 My Project라는 폴더로 이동하려면 따옴표나 이스케이프를 사용합니다.

cd 'My Project'

cd My\ Project

서버 운영용 디렉터리는 가능하면 공백 없이 my-project, my_app처럼 만드는 편이 실수를 줄이는 데 도움이 됩니다.

4. 심볼릭 링크 때문에 실제 위치가 헷갈리는 경우

배포 폴더에서는 current 같은 심볼릭 링크를 쓰는 경우가 있습니다. 이때 화면상 경로와 실제 물리 경로가 다르게 느껴질 수 있습니다.

pwd
pwd -P
ls -l

pwd는 논리 경로를 보여주고, pwd -P는 심볼릭 링크를 해석한 실제 물리 경로를 보여줍니다. 배포 구조에 따라 결과가 다를 수 있으므로, 링크가 있는 환경에서는 둘을 구분해 보는 것이 좋습니다.

원인 분리: 경로 문제인지 권한 문제인지 확인하기

이동이 실패했을 때는 아래 순서로 원인을 분리합니다.

  1. pwd로 현재 위치를 확인합니다.
  2. ls -la로 현재 폴더의 목록을 확인합니다.
  3. 절대경로를 알고 있다면 ls -ld /정확한/경로로 대상 디렉터리 존재 여부를 확인합니다.
  4. whoami, id로 현재 사용자를 확인합니다.
  5. 오류 메시지가 No such file or directory인지 Permission denied인지 구분합니다.

예시는 아래와 같습니다.

pwd
ls -la
ls -ld /var/www/html
whoami
id

ls -ld /var/www/html에서 디렉터리 정보가 보이면 경로는 존재합니다. 그런데 cd에서 권한 오류가 난다면 사용자 권한을 봐야 합니다. 반대로 ls -ld에서도 없다고 나오면 경로 오타이거나 실제 디렉터리가 없는 것입니다.

잘못된 예시

다음은 초보 서버 작업에서 자주 나오는 잘못된 흐름입니다.

cd project
npm install

이 명령은 현재 위치 아래에 project 폴더가 있을 때만 맞습니다. 현재 위치가 /home/ubuntu인지, /var/www인지, 다른 경로인지에 따라 전혀 다른 의미가 됩니다.

또 다른 예시는 설정 파일 위치를 확인하지 않고 바로 편집하는 경우입니다.

cd nginx
ls

현재 위치에 따라 nginx라는 이름의 다른 폴더로 들어갈 수도 있고, 아예 실패할 수도 있습니다. Nginx 설정처럼 서버 동작에 영향을 줄 수 있는 파일을 다룰 때는 상대경로보다 절대경로로 확인하는 편이 안전합니다.

수정 예시

잘못된 위치에서 실행하는 문제를 줄이려면, 먼저 현재 상태를 확인한 뒤 정확한 경로로 이동합니다.

pwd
ls -la
cd /home/ubuntu/my-app
pwd
ls -la
ls -l package.json

이후 package.json이 있는 것을 확인한 다음에야 npm 관련 명령을 실행합니다.

npm install

npm install은 의존성 파일을 내려받고 node_modules를 변경할 수 있습니다. 운영 서버에서는 실행 전에 현재 브랜치, 배포 방식, 서비스 영향 범위를 확인하는 것이 좋습니다. 이 글의 핵심은 npm 명령 자체가 아니라, 실행 전에 cd로 정확한 프로젝트 폴더에 들어갔는지 확인하는 것입니다.

Nginx 파일 위치를 확인해야 하는 상황이라면 아래처럼 먼저 경로를 확인합니다.

cd /etc/nginx
pwd
ls -la
ls -la sites-available

설정 파일을 수정해야 한다면 수정 전 파일명을 정확히 확인하고, 변경 후에는 환경에 따라 nginx -t로 문법 검사를 해야 합니다. 다만 설정 변경과 reload는 웹서버 동작에 영향을 줄 수 있으므로, 이 글에서는 폴더 이동과 위치 확인 흐름에만 초점을 둡니다.

수정 후 확인 방법

이동 후에는 명령이 조용히 끝나는 경우가 많습니다. 메시지가 없다고 해서 확인을 생략하지 말고, 아래처럼 현재 위치와 대상 파일을 다시 확인합니다.

pwd
ls -la

파일을 찾는 작업이라면 find를 제한된 범위에서 사용할 수 있습니다. 전체 서버 루트에서 무작정 검색하면 시간이 오래 걸릴 수 있으므로, 가능한 상위 폴더를 좁혀서 실행합니다.

find /home/ubuntu -maxdepth 3 -type d -name 'my-app'

검색 결과로 정확한 폴더가 나오면 그 경로를 복사해 절대경로로 이동합니다.

cd /home/ubuntu/my-app
pwd

재발 방지 체크리스트

  • 중요한 명령을 실행하기 전에는 pwd를 먼저 확인합니다.
  • 상대경로가 헷갈리면 절대경로로 이동합니다.
  • No such file or directory가 나오면 오타, 대소문자, 현재 위치를 먼저 봅니다.
  • Permission denied가 나오면 whoami, id, ls -ld 경로를 확인합니다.
  • 폴더명에 공백이 있으면 따옴표를 사용하거나 운영용 폴더명에서는 공백을 피합니다.
  • 프로젝트 명령은 package.json, 설정 명령은 설정 파일 위치를 확인한 뒤 실행합니다.
  • 스크립트에는 가능한 한 실행 위치에 의존하는 상대경로보다 명확한 경로를 사용합니다.
  • 권한 오류를 해결하려고 무작정 권한을 넓히지 않습니다.

FAQ

Q1. cd 명령어를 실행했는데 아무 메시지도 안 나오면 실패한 건가요?

대부분은 정상입니다. cd는 이동에 성공하면 별도 메시지를 출력하지 않는 경우가 많습니다. 성공 여부는 pwd로 현재 위치를 확인하면 됩니다.

cd /var/www/html
pwd

Q2. sudo cd가 왜 잘 안 되나요?

cd는 외부 프로그램이 아니라 현재 셸의 작업 디렉터리를 바꾸는 내장 명령입니다. 그래서 sudo cd /root처럼 실행해도 기대한 방식으로 현재 셸 위치가 바뀌지 않을 수 있습니다. 먼저 whoami, id, ls -ld 경로로 권한 상태를 확인하고, 정말 관리자 권한 작업이 필요한지 판단해야 합니다. root 권한 작업은 파일 변경이나 서비스 영향이 생길 수 있으므로 필요한 범위에서만 진행하는 것이 좋습니다.

Q3. 상대경로와 절대경로 중 무엇을 쓰는 것이 좋나요?

짧은 탐색이나 현재 폴더 안에서 움직일 때는 상대경로가 편합니다. 하지만 운영 서버에서 설정 파일을 수정하거나 배포 스크립트를 실행할 때는 절대경로가 더 안전한 경우가 많습니다. 특히 현재 위치가 바뀌면 상대경로의 의미도 바뀌므로, 중요한 작업 전에는 pwd로 기준점을 확인하는 습관이 필요합니다.