JooTC
linux-logo-black

리눅스 mkdir 명령어 – 손쉬운 디렉토리 생성 방법

리눅스 명령어 – mkdir


mkdir은 가장 자주 쓰이는 명령어이자 반드시 알아야하는 명령어 중의 하나입니다.

mkdirmake directory의 약자이며 원하는 이름으로 디렉토리를 생성하게 해주는 명령어입니다. 주로 유닉스/리눅스 셸 명령어로 사용되지만 윈도우 명령 프롬프트에서도 해당 명령어로 폴더를 만들 수 있습니다. (물론 윈도우에서는 옵션 등의 사용법이 다릅니다.)

 

 

사용 방법


사용법은 아주 간단합니다. mkdir 뒤에 디렉토리 이름을 인자값으로 붙이면 현재 디렉토리 위치에 새로운 디렉토리를 생성합니다.

$ mkdir newFolder

디렉토리가 생성되었는지 확인하기위해 ls -al (현재 위치의 전체 파일을 자세히 출력)명령어를 사용해보겠습니다.

$ ls -al
total 4
drwxrwxr-x.  3 user user   23 Jan 30 18:25 .
drwx--x--x. 25 user user 4096 Jan 30 18:25 ..
drwxrwxr-x.  2 user user    6 Jan 30 18:25 newFolder

newFolder가 생성된 것을 확인할 수 있습니다. 여기서 첫번째 열은 파일 형식 및 권한 정보를 보여주는 것인데, 여기서 d 로 표시되는 것들은 모두 디렉토리임을 뜻합니다. (처음의 현재 경로인 ‘.‘ 과 상위 경로인 ‘..‘ 역시 d 로 나타납니다.) 아래 표를 참고해보세요.

문자파일 타입설명
-일반 파일일반적인 파일을 나타내는 문자
d디렉토리디렉토리를 나타내는 문자
l심볼릭 링크심볼릭 링크 (Soft Link) 파일
c문자 장치 드라이버문자 장치 드라이버 (Character Device Driver). 물리적 장치를 위한 실행 파일
b블록 장치 드라이버블록 장치 드라이버 (Block Device Driver). 물리적 장치를 위한 실행 파일
s로컬 소켓프로세스 통신을 위해 사용되는 파일.
p네임드 파이프 (Named Pipe)프로세스 통신을 위해 사용되는 파일. 선입선출 (FIFO) 파일이라고도 함

 

참고로 rm 명령어로 파일을 삭제할 때 디렉토리의 경우에는 경고를 표시합니다. 이 때 다음 예시처럼 rm-r 옵션을 붙여야합니다.

$ mkdir newFolder
$ rm newFolder/
rm: cannot remove ‘newFolder/’: Is a directory
$ rm -r newFolder/
$ ls -al
total 4
drwxrwxr-x.  2 user user    6 Jan 30 19:13 .
drwx--x--x. 25 user user 4096 Jan 30 19:07 ..

 

다음으로 여러 디렉토리를 한 번에 생성해보겠습니다. 역시나 간단합니다. 여러 디렉토리 이름을 공백으로 구분하여 인자값으로 지정하면 한 번에 지정한 디렉토리를 모두 생성할 것입니다.

$ mkdir red green blue black white
$ ls -al
total 4
drwxrwxr-x.  7 user user   68 Jan 30 19:16 .
drwx--x--x. 25 user user 4096 Jan 30 19:07 ..
drwxrwxr-x.  2 user user    6 Jan 30 19:16 black
drwxrwxr-x.  2 user user    6 Jan 30 19:16 blue
drwxrwxr-x.  2 user user    6 Jan 30 19:16 green
drwxrwxr-x.  2 user user    6 Jan 30 19:16 red
drwxrwxr-x.  2 user user    6 Jan 30 19:16 white

 

만약 모든 디렉토리 생성 과정을 메세지로 출력받고 싶다면 아래와 같이 -v (verbose)옵션을 붙이면 됩니다.

$ mkdir -v AA BB CC
mkdir: created directory ‘AA’
mkdir: created directory ‘BB’
mkdir: created directory ‘CC’

 

이번에는 여러 단계의 디렉토리를 한 번에 생성하고 싶은 경우가 있습니다.

예를 들어 /home/myuser 경로 안에 하위 디렉토리인 A, A 디렉토리 내에 B, B 디렉토리 내에 C와 같이 구성(/home/myuser/A/B/C)하려 할 때, A 디렉토리를 만들고 cd 명령어로 A 디렉토리에 이동해서 B 디렉토리를 만드는 등의 과정을 굳이 하지 않아도 됩니다. A/B/C 폴더를 한 번에 생성하려고 할 때에는 mkdir-p (parents) 옵션을 붙여 사용하면 됩니다.

$ mkdir -p /home/user/A/B/C

이 때 /home/user 디렉토리는 이미 존재하므로 이를 무시한 채 존재하지 않는 A, B, C 폴더만 각각 생성할 것입니다.

 

마지막으로 디렉토리를 생성할 때 미리 권한을 부여하고 싶은 경우 -m (mode) 옵션을 붙여 umask를 지정하면 됩니다. 여기서 rwx 와 같은 형식을 사용해서는 안되고 755, 600과 같은 8진법 숫자를 사용해야 합니다.

다음은 Scripts 디렉토리를 소유자에게만 모든 권한(rwx)을 주도록 하는 예시입니다.

$ mkdir -m 700 Scripts/
$ ls -al
total 4
drwxrwxr-x.  3 user user   27 Jan 30 19:30 .
drwx--x--x. 26 user user 4096 Jan 30 19:22 ..
drwx------.  2 user user    6 Jan 30 19:30 Scripts

이 글에 대해 어떻게 생각하시나요?

여러분의 의견을 댓글로 남겨주세요.

avatar
error: Y