Mkdir
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
mkdir은 디렉토리를 생성하는 데 사용되는 명령어이다. 초기 유닉스 시스템에서는 커널에 mkdir 시스템 호출이 없어 mknod 명령어를 통해 디렉토리를 생성했으며, MS-DOS 버전 2 이상에서도 사용할 수 있게 되었다. GNU coreutils에 포함된 버전은 데이비드 매켄지가 작성했으며, DOSBox 및 KolibriOS에서도 사용 가능하다. mkdir 명령어는 디렉토리 이름을 인자로 받아 현재 디렉토리에 새로운 디렉토리를 생성하며, --parents (-p), --mode (-m), -v (--verbose) 등의 옵션을 지원한다. POSIX 표준에 따라 시스템 호출로 구현되어 있으며, MSVC++에서는 _mkdir() 함수로 유사하게 제공된다.
더 읽어볼만한 페이지
- 내부 도스 명령어 - TYPE (도스 명령어)
TYPE은 텍스트 파일의 내용을 화면에 표시하는 기능을 수행하는 명령어이며, MS-DOS, 윈도우 등 다양한 운영 체제에서 지원된다. - 내부 도스 명령어 - Echo (명령어)
echo 명령어는 다양한 운영체제 및 셸 환경에서 입력받은 문자열을 그대로 출력하는 명령어로, POSIX 표준의 부재로 시스템에 따라 동작 방식에 차이가 있어 이식성이 떨어진다는 평가를 받는다. - OS/2 명령어 - 파일 전송 프로토콜
파일 전송 프로토콜(FTP)은 클라이언트-서버 모델 기반으로 네트워크를 통해 파일을 전송하는 표준 통신 규약이며, 명령 연결과 데이터 연결을 사용하고, 보안 취약점 때문에 암호화된 방식 사용이 권장된다. - OS/2 명령어 - CHKDSK
CHKDSK는 디스크의 파일 시스템 무결성을 검사하고 오류를 수정하는 시스템 도구로, 다양한 운영체제에서 구현되었으며 파일 시스템 오류 수정 및 손상된 파일 조각 복구 기능을 제공하지만 데이터 손상이나 시스템 불안정을 야기할 수 있다는 비판도 있다. - 윈도우 명령어 - 파워셸
파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다. - 윈도우 명령어 - 클립보드
클립보드는 텍스트 조각을 임시 저장하는 버퍼로, 잘라내기, 복사, 붙여넣기 기능을 구현하며, 다양한 데이터 형식을 지원하고 애플리케이션 간 데이터 교환에 사용되며 보안 취약점의 대상이 될 수 있다.
| Mkdir - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 일반 정보 | |
| 명령어 종류 | 명령어 |
| 설명 | 디렉터리 생성 명령어 |
| 개발자 | |
| 개발자 목록 | 다양한 오픈 소스 개발자 상업 개발자 |
| 출시 정보 | |
| 운영 체제 | 유닉스 유닉스 계열 플랜 9 인페르노 도스 MSX-DOS FlexOS OS/2 마이크로소프트 윈도우 ReactOS KolibriOS |
| 플랫폼 | 크로스 플랫폼 |
| 라이선스 | |
| 라이선스 정보 | GNU coreutils: GPLv3+ MS-DOS, Plan 9: MIT FreeDOS: GPLv2+ ReactOS: GPLv2 |
2. 역사
초기 유닉스(4.1BSD, 초기 시스템 V)에서는 커널에 ''mkdir()'' 시스템 호출이 없었기 때문에, 이 명령어는 setuid 루트 권한이 필요했다. 대신 mknod 시스템 호출을 사용하여 디렉터리를 생성하고, '.'와 '..' 디렉터리 항목을 수동으로 연결해야 했다.
이 명령어는 MS-DOS 버전 2 이상에서 사용할 수 있게 되었다.[10] 디지털 리서치의 DR DOS 6.0[11] 및 데이터라이트의 ROM-DOS[12] 역시 ''md'' 및 ''mkdir'' 명령어 구현을 포함한다.
GNU coreutils에 포함된 ''mkdir'' 버전은 데이비드 매켄지(David MacKenzie)가 작성했다.[13] 또한 오픈 소스 MS-DOS 에뮬레이터인 DOSBox와 KolibriOS에서도 이 명령어를 사용할 수 있다.[14]
3. 사용법

mkdir 명령어mkdir 명령어의 가장 기본적인 사용법은 다음과 같다.
mkdir 디렉터리_이름
위 명령어에서 `디렉터리_이름`은 새로 만들고자 하는 디렉터리의 이름을 의미한다. 이렇게 명령어를 입력하면, 현재 작업 중인 디렉터리 안에 지정한 이름의 새 디렉터리가 생성된다.
유닉스 계열 운영체제나 윈도우(명령 확장 기능이 활성화된 경우[15] 기본값[16])에서는 한 번에 여러 개의 디렉터리 이름을 지정하여 동시에 생성할 수도 있다. 예를 들어 `mkdir 디렉터리1 디렉터리2`와 같이 입력하면 현재 위치에 '디렉터리1'과 '디렉터리2'가 모두 만들어진다.
3. 1. 옵션
유닉스 계열 운영 체제에서 `mkdir` 명령어는 다양한 옵션을 제공하며, 이를 통해 디렉터리 생성 과정을 제어할 수 있다. 주요 옵션은 다음과 같다.3. 1. 1. -p (--parents)
`-p` 옵션은 `--parents` 옵션과 동일하며, 지정된 디렉터리를 생성할 때 필요한 상위 디렉터리가 존재하지 않으면 자동으로 함께 생성한다. 예를 들어, `''mkdir -p a/b''` 명령어는 현재 디렉터리에 'a' 디렉터리가 없을 경우 'a'를 먼저 만들고, 그 다음 'a' 디렉터리 내부에 'b' 디렉터리를 생성한다.
이 옵션의 중요한 특징 중 하나는 생성하려는 디렉터리 경로의 일부 또는 전체가 이미 존재하더라도 오류를 발생시키지 않는다는 점이다. 따라서 `-p` 옵션은 여러 단계로 이루어진 복잡한 디렉터리 구조를 한 번에 만들 때 매우 유용하게 사용된다. 각 단계별 디렉터리 존재 여부를 미리 확인할 필요 없이 명령어를 실행할 수 있어 편리하다.
3. 1. 2. -m (--mode)
'--mode' 또는 '-m' 옵션은 'mkdir' 명령어로 디렉토리를 생성할 때 파일 권한을 8진수 표기법으로 직접 지정하는 데 사용된다. 예를 들어, 특정 사용자만 접근 가능한 디렉토리를 만들 때 유용하다.
이 옵션은 주로 셸 스크립트 내에서 임시 디렉토리를 생성할 때 활용된다. 스크립트 실행 중 생성된 임시 파일이나 데이터가 다른 사용자에게 노출되거나 수정되는 것을 방지하기 위해, '-m' 옵션으로 권한을 제한하여 보안을 강화할 수 있다.
3. 1. 3. -v (--verbose)
`-v` 또는 `--verbose` 옵션은 `mkdir` 명령어가 실제로 어떤 디렉터리를 생성했는지 그 이름을 화면에 보여준다. 이 옵션은 종종 -p 옵션과 함께 사용된다.
3. 2. 예시
`-p` 옵션의 동작 예시는 다음과 같다.
mkdir -p /tmp/a/b/c
만약 `/tmp/a`는 존재하지만 `/tmp/a/b`가 존재하지 않는다면, `mkdir`은 `/tmp/a/b/c`를 생성하기 전에 `/tmp/a/b`를 생성한다.[1]
셸 확장 기능을 사용하면 한 번의 명령으로 더 복잡한 디렉터리 트리 구조를 생성할 수 있다. (이것은 `mkdir` 자체의 기능이 아닌 셸의 기능이다.)
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
위 명령은 다음과 같은 디렉터리 구조를 생성한다.
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
bash 스크립트에서 `mkdir`과 함께 변수를 사용하는 경우, POSIX `special` 내장 명령어인 'eval'이 유용할 수 있다.
DOMAIN_NAME=includes,docs
eval "mkdir -p tmpdir/{trunk/sources/{${DOMAIN_NAME}},branches,tags}"
4. 시스템 호출
초기 버전의 유닉스(4.1BSD, 초기 버전의 시스템 V)에서는 커널에 `mkdir()` 시스템 호출이 없었다. 이 때문에 `mkdir` 명령어는 setuid 루트 권한으로 실행되어야 했다. 대신 mknod() 시스템 호출을 사용하여 디렉터리를 생성하고, 명령어 내부에서 `.`과 `..` 같은 디렉터리 항목을 수동으로 연결했다.
POSIX 표준에서는 `mkdir` 함수의 함수 프로토타입을 다음과 같이 정의하고 있다.[17]
#include
int mkdir(const char *path, mode_t mode);
여기서 `path`는 생성할 디렉터리의 경로를 나타내는 문자열이고, `mode`는 생성될 디렉터리의 접근 권한을 지정한다.
마이크로소프트 비주얼 C++의 C 런타임 라이브러리에는 윈도우 API를 사용하여 구현된 유사한 함수 `_mkdir()`가 정의되어 있다.[18] 이 함수는 POSIX의 `mkdir` 함수와 유사하지만, 운영체제의 기능적 차이로 인해 접근 권한을 설정하는 `mode` 인수가 없다. 함수 이름이 밑줄(_)로 시작하는 것은 컴파일러 등 처리계를 위해 예약된 이름임을 나타낸다. POSIX와 동일한 이름의 `mkdir` 매크로도 정의되어 있지만, ISO 표준이 아니므로 사용이 권장되지 않는다.[19]
참조
[1]
웹사이트
Users guide
http://www.bitsavers[...]
bitsavers.org
2019-10-22
[2]
웹사이트
JaTomes Help - OS/2 Commands
http://www.jatomes.c[...]
[3]
웹사이트
GitHub - reactos/reactos: A free Windows-compatible Operating System
https://github.com/r[...]
2019-10-22
[4]
웹사이트
EFI Shells and Scripting
http://software.inte[...]
Intel
2013-09-25
[5]
웹사이트
Reference manual
http://stratadoc.str[...]
stratadoc.stratus.com
2019-10-22
[6]
웹사이트
Introduction to Tripos
https://www.pagetabl[...]
2019-10-22
[7]
서적
AmigaDOS quick reference
http://archive.org/d[...]
Grand Rapids, Mi : Abacus
1988-10-22
[8]
웹사이트
Make new folder - MATLAB mkdir
https://www.mathwork[...]
[9]
웹사이트
Function Reference: mkdir
https://octave.sourc[...]
[10]
서적
Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition
Microsoft Press
2003
[11]
웹사이트
DR DOS 6.0 User Guide Optimisation and Configuration Tips
https://www.4corn.co[...]
2019-08-13
[12]
웹사이트
Datalight ROM-DOS User's Guide
https://www.dataligh[...]
[13]
웹사이트
mkdir(1): make directories - Linux man page
https://linux.die.ne[...]
[14]
웹사이트
Shell - KolibriOS wiki
http://wiki.kolibrio[...]
[15]
웹사이트
Microsoft Windows XP - Mkdir
http://www.microsoft[...]
Microsoft
2012-10-25
[16]
웹사이트
Microsoft Windows XP - Cmd
http://www.microsoft[...]
Microsoft
2012-10-25
[17]
간행물
mkdir, mkdirat — make a directory | The Open Group Base Specifications Issue 8 / IEEE Std 1003.1-2024 | Copyright © 2001-2024 The IEEE and The Open Group
https://pubs.opengro[...]
[18]
웹사이트
_mkdir, _wmkdir | Microsoft Learn
https://learn.micros[...]
[19]
웹사이트
mkdir | Microsoft Learn
https://learn.micros[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com