핵심 요약
- 리눅스에서 터미널 창을 엽니다.
- 새 디렉터리를 만들고 싶은 폴더로 이동합니다.
- mkdir 디렉터리이름 형식으로 명령어를 입력합니다.
이 글에서는 리눅스에서 mkdir 명령어로 디렉터리(폴더)를 생성하는 방법을 설명합니다. 또한 mkdir과 함께 사용하는 다양한 옵션과 올바른 명령어 문법까지 자세히 다룹니다.
새 디렉터리 생성하기
리눅스에서는 명령줄 인터페이스와 mkdir 명령어를 사용해 새 디렉터리를 만들 수 있습니다.
예를 들어 test라는 이름의 디렉터리를 만들려면 터미널 창을 연 뒤, 새 디렉터리를 생성할 폴더로 이동하고 다음 명령어를 입력하면 됩니다.
mkdir test
새 디렉터리의 권한 변경하기
새 폴더를 만든 후에는 권한을 설정할 수 있습니다. 특정 사용자만 접근 가능하게 하거나, 일부 사용자에게는 파일 수정 권한을 주고 다른 사용자에게는 읽기 전용 권한만 부여하는 식입니다.
앞선 예제를 이어서 진행해 보겠습니다. test라는 폴더의 권한을 확인하려면 ls 명령어를 실행합니다.
ls -lt
test 폴더가 있는 위치에서 ls 명령어를 실행하세요. 홈 디렉터리에 있다면(cd 명령어로 이동하지 않았다면) 별도로 디렉터리를 변경할 필요가 없습니다.
다음과 비슷한 결과가 출력될 것입니다. 물론 해당 위치에 다른 폴더들이 있다면 더 많은 항목이 함께 표시됩니다.
drwxr-xr-x 2 owner group 4096 Jan 22 10:43 test
여기서 권한 정보는 drwxrwxr-x, 2, owner, group 부분입니다.
- d는 test가 디렉터리임을 의미합니다.
d 바로 뒤의 세 글자는 소유자(owner)의 권한을 나타냅니다.
r은 읽기(read), w는 쓰기(write), x는 실행(execute), 즉 폴더에 접근할 수 있는 권한을 뜻합니다. - 다음 세 문자는 그룹(group) 권한으로, 역시 r, w, x 조합으로 구성됩니다. 하이픈(-)은 해당 권한이 없다는 의미입니다. 위 예시에서는 그룹에 속한 모든 사용자가 폴더에 접근해 파일을 볼 수 있지만, 폴더에 쓸 수는 없습니다.
- 마지막 세 문자는 모든 사용자(other)의 권한으로, 일반적으로 그룹 권한과 동일하게 설정됩니다.
파일이나 폴더의 권한을 변경하려면 chmod 명령어를 사용합니다. chmod 명령어에서는 세 개의 숫자로 권한을 지정합니다.
- 읽기(Read) = 4
- 쓰기(Write) = 2
- 실행(Execute) = 1
권한을 조합하려면 숫자를 더하면 됩니다. 예를 들어 읽기와 실행 권한은 5(4+1), 읽기와 쓰기 권한은 6(4+2)입니다.
chmod 명령어에는 반드시 세 개의 숫자를 입력해야 합니다. 첫 번째 숫자는 소유자 권한, 두 번째는 그룹 권한, 마지막은 그 외 모든 사용자의 권한을 나타냅니다.
예를 들어 소유자에게는 전체 권한을, 그룹에는 읽기와 실행 권한을, 그 외 사용자에게는 아무 권한도 주지 않으려면 다음과 같이 입력합니다.
chmod 750 test
폴더를 소유한 그룹명을 변경하려면 chgrp 명령어를 사용합니다. 예를 들어 회사의 회계 담당자들만 접근할 수 있는 디렉터리를 만들려면, 먼저 다음 명령어로 accounts라는 그룹을 생성합니다.
groupadd accounts
그룹을 생성할 권한이 없다면 sudo 명령어로 추가 권한을 얻거나, su 명령어로 적절한 권한을 가진 계정으로 전환하세요.
다음으로, 다음 명령어로 폴더의 그룹을 변경합니다.
chgrp accounts
예시는 다음과 같습니다.
chgrp accounts test
소유자와 accounts 그룹의 모든 사용자에게 읽기·쓰기·실행 권한을 주고, 그 외 사용자에게는 읽기 전용 권한만 부여하려면 다음 명령어를 사용합니다.
chmod 770 test
디렉터리 생성과 동시에 권한 설정하기
다음 명령어를 사용하면 디렉터리를 생성하면서 동시에 권한까지 설정할 수 있습니다.
mkdir -m777
이 명령어는 모든 사용자가 접근할 수 있는 폴더를 만듭니다. 이런 방식의 권한으로 폴더를 생성하는 경우는 드물다는 점을 참고하세요.
필요한 상위 폴더까지 한 번에 만들기
개별 폴더를 하나씩 만들지 않고도 디렉터리 구조 전체를 한 번에 생성할 수 있습니다. 예를 들어 음악 관련 폴더를 다음과 같이 만들고 싶다고 가정해 보겠습니다.
- /home/music/rock/alicecooper
- /home/music/rock/queen
- /home/music/rap/drdre
- /home/music/jazz/louisjordan
일반적인 방법이라면 rock 폴더를 만들고 그 안에 alicecooper와 queen 폴더를 차례로 생성한 뒤, rap과 jazz 폴더도 각각 만들어야 하므로 시간이 오래 걸립니다.
-p 옵션을 지정하면 상위 폴더가 존재하지 않을 경우 자동으로 모두 생성해 줍니다.
mkdir -p
예를 들어 다음 mkdir 명령어는 위 목록의 폴더 중 하나를 한 번에 만들어 줍니다.
mkdir -p ~/music/rock/alicecooper
디렉터리 생성 확인 메시지 받기
기본적으로 mkdir 명령어는 디렉터리가 성공적으로 생성되었는지 알려주지 않습니다. 보통 에러 메시지가 출력되지 않으면 정상적으로 처리된 것으로 간주하면 됩니다. 하지만 무엇이 생성되었는지 자세히 확인하고 싶다면 -v(verbose) 옵션을 사용하세요.
mkdir -v
출력 결과는 다음과 비슷합니다.
mkdir: created directory /path/to/directoryname
셸 스크립트에서 mkdir 활용하기
mkdir 명령어는 셸 스크립트의 일부로도 활용할 수 있습니다. 예를 들어 경로를 입력받아 스크립트 실행 시 해당 폴더를 생성하고, hello라는 텍스트 파일 하나를 추가하는 스크립트를 만들 수 있습니다.
#!/bin/bash
mkdir $@
cd $@
touch hello
- 첫 번째 줄은 작성하는 모든 스크립트에 포함해야 합니다. 이것이 BASH 스크립트임을 나타내는 선언문입니다.
- mkdir은 폴더를 생성합니다.
- 두 번째와 세 번째 줄 끝에 있는 $@(입력 매개변수)는 스크립트 실행 시 지정한 값으로 대체됩니다.
- cd는 지정한 디렉터리로 이동합니다.
- touch는 hello라는 빈 파일을 생성합니다.