mkdir
은 가장 자주 쓰이는 명령어이자 반드시 알아야하는 명령어 중의 하나입니다.
mkdir
은 make 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
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…