Cd (명령어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

`cd`는 명령 줄 인터프리터에서 사용되는 명령어로서, 현재 작업 디렉터리를 변경하는 데 사용된다. 유닉스 계열, 도스, 윈도우, ReactOS 등 다양한 운영체제에서 지원되며, 셸의 내부 명령어로 구현된다. 사용자는 `cd` 명령어를 통해 디렉터리 간 이동, 홈 디렉터리 이동, 상위 또는 하위 디렉터리 이동 등을 수행할 수 있다.

Cd (명령어) - [IT 관련 정보]에 관한 문서
명령어 정보
이름cd / chdir
개발자AT&T 벨 연구소, MetaComCo, 마이크로소프트, IBM, DR, 노벨, HP, JP 소프트웨어, ReactOS 기여자
출시(정보 없음)
최신 릴리스 버전(정보 없음)
최신 릴리스 날짜(정보 없음)
운영 체제유닉스, 유닉스 계열, V, 도스, MSX-DOS, FlexOS, OS/2, TRIPOS, 윈도우, MPE/iX, Plan 9, Inferno, ReactOS, KolibriOS, SymbOS
플랫폼크로스 플랫폼
장르명령어
라이선스(정보 없음)
웹사이트(정보 없음)
다른 이름chdir
📚 더 읽어볼만한 페이지
  • 파일 시스템 디렉토리 - 홈 디렉토리
    홈 디렉토리는 다중 사용자 환경에서 각 사용자가 개인 파일과 설정을 저장 및 관리하는 공간으로, 유닉스에서 처음 도입되어 다양한 운영체제에서 구현 방식과 위치가 다르지만 파일 시스템 권한으로 보호되어 개인 정보와 시스템 안정성을 유지하는 데 중요한 역할을 한다.
  • 파일 시스템 디렉토리 - 작업 디렉토리
    작업 디렉토리는 컴퓨터 파일 시스템에서 현재 사용자가 작업 중인 디렉토리를 의미하며, 운영체제 및 프로그래밍 언어에서 변경 및 확인 기능을 제공하고, DLL 검색 경로에 포함 시 보안 문제가 발생할 수 있다.
  • 내부 도스 명령어 - TYPE (도스 명령어)
    TYPE은 텍스트 파일의 내용을 화면에 표시하는 기능을 수행하는 명령어이며, MS-DOS, 윈도우 등 다양한 운영 체제에서 지원된다.
  • 내부 도스 명령어 - Echo (명령어)
    echo 명령어는 다양한 운영체제 및 셸 환경에서 입력받은 문자열을 그대로 출력하는 명령어로, POSIX 표준의 부재로 시스템에 따라 동작 방식에 차이가 있어 이식성이 떨어진다는 평가를 받는다.
  • 윈도우 관리 - 블루스크린
    블루스크린은 윈도우 운영체제에서 발생하는 치명적인 오류로, 컴퓨터 작동을 멈추고 파란색 화면에 오류 메시지를 표시하며, 하드웨어 또는 소프트웨어 문제로 인해 발생하고, 시스템 복원, 안전 모드 부팅 등의 방법으로 대처한다.
  • 윈도우 관리 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.

2. 사용법

`cd` 명령어는 파일 시스템에서 현재 작업 디렉터리를 변경하는 데 사용된다. 사용자가 터미널이나 명령 프롬프트에서 이 명령어를 입력하면, 지정된 경로로 작업 디렉터리가 바뀐다.

`cd` 명령어의 기본적인 사용법은 다음과 같다.

* `cd [디렉터리 경로]`: 지정된 경로로 현재 작업 디렉터리를 변경한다. 예를 들어, `cd documents`를 입력하면 현재 디렉터리 아래의 `documents` 디렉터리로 이동한다.
* 경로를 지정하지 않거나 `cd ~` 입력: 사용자의 홈 디렉터리로 이동한다. 유닉스 계열 시스템에서는 환경 변수 `$HOME`에 설정된 디렉터리로, 윈도우에서는 사용자 프로필 디렉터리로 이동한다.
* `cd .`: 현재 디렉터리를 유지한다. 이는 셸 스크립트 등에서 유용하게 사용될 수 있다.
* `cd ..`: 현재 디렉터리의 상위 디렉터리로 이동한다.
* `cd -`: 바로 직전에 위치했던 디렉터리로 이동한다. 두 디렉터리를 번갈아 작업할 때 유용하다.

예를 들어, 사용자의 홈 디렉터리가 다음과 같은 구조를 가지고 있다고 가정해 보자.

--

현재 작업 디렉터리가 홈 디렉터리(`~`)인 상태에서 `ls` 명령어를 실행하면 다음과 같은 결과가 나타난다.

```text
me@host:~$ ls
workreports games encyclopedia text.txt
```

이후 `cd games` 명령어를 실행하면 현재 작업 디렉터리가 `games` 디렉터리로 변경된다.

```text
me@host:~$ cd games
me@host:~/games$

2.1. 유닉스, 유닉스 계열 운영체제

`cd ~사용자이름`은 지정된 사용자의 홈 디렉터리로 이동한다. `cd dir` (상대 경로)는 현재 디렉터리 아래의 `dir` 디렉터리로 이동한다. `cd /dir` (절대 경로)는 루트 디렉터리 아래의 `dir` 디렉터리로 이동한다. `cd ../..`는 두 단계 상위 디렉터리로 이동한다. pushd와 popd 명령어를 함께 사용하여 디렉터리 스택을 관리하고, 여러 디렉터리를 번갈아 이동할 수 있다.

유닉스 계열 운영 체제에서 `cd` 명령어의 다양한 사용법은 다음과 같다.

* 인수 없음, 또는 `cd ~`: 셸 변수 `$HOME`에 설정된 디렉토리로 이동한다.
* `cd ~사용자 이름`: 해당 사용자 이름의 홈 디렉토리로 이동한다.
* `cd 디렉토리 이름`: 하위 디렉토리로 이동한다. 예를 들어 현재 디렉토리가 `/user`인 상태에서 "cd bin"을 입력하고 Enter 키를 누르면 `/user/bin`으로 이동한다. 한편, "cd /bin"을 입력하고 Enter 키를 누르면 `/bin`으로 이동한다.
* `cd ..`: 한 단계 상위 디렉토리로 이동한다. 예를 들어 현재 `/user/bin/temp`에 있는 상태에서 "cd .."을 입력하고 Enter 키를 누르면 `/user/bin`으로 이동한다.
* `cd ../..`: 두 단계 상위 디렉토리로 이동한다. 예를 들어 현재 `/user/bin/temp`에 있는 상태에서 "cd ../.."을 입력하고 Enter 키를 누르면 `/user`로 이동한다.
* `cd -`: 바로 전에 있던 디렉토리로 이동한다. 예를 들어 `/user/bin`에 있다가 "cd /etc"를 입력하여 `/etc`로 이동한 후, "cd -"를 입력하면 `/user/bin`으로 돌아간다. 다시 "cd -"를 입력하면 `/etc`로 이동한다. 즉, "cd -"를 사용하면 두 디렉터리를 번갈아 이동하며 작업할 때 디렉터리 이름을 বারবার 입력하는 수고를 덜 수 있다.

2.2. 도스, 윈도우, ReactOS

* `cd \` (또는 `cd\`) : 루트 디렉터리로 이동한다.
* `cd 드라이브명:` : 해당 드라이브의 현재 작업 디렉터리를 출력한다.
* `cd /D 드라이브명:경로` : 작업 드라이브와 해당 드라이브의 작업 디렉터리를 한 번에 변경한다. (윈도우)
* 경로 없이 `cd`만 입력하면 현재 작업 디렉터리의 전체 경로를 출력한다.

도스(DOS)는 각 문자 드라이브에 대해 별도의 작업 디렉터리를 유지하며, 현재 작업 드라이브의 개념도 가지고 있다. `cd` 명령어를 사용하여 작업 드라이브 또는 다른 문자 드라이브의 작업 디렉터리를 변경할 수 있다. 드라이브 문자를 자체적으로 명령어로 입력하면 작업 드라이브가 변경된다 (예: `C:`).

최신 버전의 윈도우는 CMD.EXE에서 하위 호환성을 위해 이러한 동작을 시뮬레이션한다.

3. 동작 방식

`cd` 명령어는 대부분의 명령 줄 인터프리터(셸)에 내장되어 있다. 예를 들면 유닉스 셸 (본 셸, tcsh, bash 등), 윈도우 cmd.exe 및 윈도우 파워 셸, 도스의 COMMAND.COM 등이 있다. 셸은 `cd` 명령어를 실행하기 위해 별도의 프로세스를 생성하지 않고, 셸 자체에서 직접 명령을 처리한다.

유닉스 시스템에서는 `cd`가 `chdir()` POSIX C 함수를 호출한다. 윈도우의 명령줄 셸은 일반적으로 Windows API를 사용하여 현재 작업 디렉터리를 변경한다. Windows PowerShell은 .NET Framework 기반으로, 모든 cmdlet(cd 포함)이 셸의 프로세스 내에서 실행된다.

4. 구현

`cd` 명령어는 다양한 운영체제에서 구현되었다.

👆
좌우로 밀어서 보기
운영체제설명
유닉스대부분의 유닉스 셸(본 셸, tcsh, bash 등)에 내장
도스MS-DOS 버전 2 이상, DR DOS 6.0에 포함, DOSBox에서 사용 가능
IBM OS/2
MetaComCo TRIPOS
AmigaOS
마이크로소프트 윈도우cmd.exe 및 윈도우 파워 셸에 내장
ReactOS
리눅스
EFI 셸
HP MPE/iX`chdir`로 명명
OpenVOS`change_current_dir` 명령어와 유사


파일 전송 프로토콜(FTP)에서는 제어 스트림에서 `CWD`로 표기되지만, 대부분의 클라이언트 프로그램에서는 `cd`로 사용 가능하다. 로컬 작업 디렉터리 변경을 위한 `lcd` 명령어(`locally`)도 지원된다.

수치 해석 환경인 MATLAB과 GNU Octave에도 `cd` 함수가 포함되어 있다.

대부분의 운영 체제에서 이 명령을 수행하는 시스템 호출POSIX에 의해 정의된 `chdir`이다. 윈도우의 명령줄 셸은 일반적으로 Windows API를 사용하고, 유닉스 시스템에서는 `cd`가 `chdir()` POSIX C 함수를 호출한다.

`cd` 명령어는 ls와 같은 다른 명령어와 달리 새로운 프로세스를 생성하지 않고, 셸 자체가 직접 실행한다. 이는 새로운 프로세스가 생성될 때 자식 프로세스가 부모 프로세스가 생성된 디렉터리를 상속받기 때문이다. 만약 `cd` 명령어가 부모 프로세스의 디렉터리를 상속받으면, `cd` 명령어의 목표는 달성될 수 없다.

Windows PowerShell은 .NET Framework를 기반으로 하여, `cd` 명령(`cmdlet`)을 포함한 모든 cmdlet이 셸의 프로세스에서 실행된다.