일반적으로 리눅스에서 mkdir(디렉터리 생성) 명령어를 사용하면 현재 프롬프트가 위치한 디렉터리 안에 하위 디렉터리 하나를 만들게 됩니다. 예를 들어 ~/Documents에 있을 때 mkdir Memoranda라고 입력하면 ~/Documents 안에 Memoranda라는 단일 디렉터리가 생성됩니다. 보통은 그 안에 더 많은 디렉터리를 한 번에 만들지 않습니다.
하지만 mkdir 명령어의 재귀(recursive) 형태를 활용하면 전체 디렉터리 트리를 한 번에 만들 수 있습니다. 현재 작업 중인 디렉터리 안에 새 디렉터리를 만들고, 그 안에 여러 개의 디렉터리를 추가로 생성하는 방식입니다. 물론 이 작업을 진행하려면 CLI 프롬프트 환경이 필요합니다. Ctrl + Alt + T 키를 눌러 그래픽 터미널을 열거나, Ubuntu Unity Dash에서 'Terminal'을 검색하거나, Applications 메뉴 → System Tools → Terminal을 선택해 실행할 수 있습니다. 자신의 홈 디렉터리 밖에 디렉터리를 만드는 것이 아니라면 root 권한으로 작업할 필요는 없습니다.
방법 1: mkdir의 부모(parent) 옵션 사용
여러 개의 디렉터리를 한 번에 만들고 싶다면 mkdir -p hey/this/is/a/whole/tree를 입력하고 Enter 키를 누르면 됩니다. 그러면 각 이름을 가진 디렉터리들이 서로 중첩된 형태로 한꺼번에 생성됩니다. 당연히 트리의 어느 지점에서든 원하는 이름을 자유롭게 사용할 수 있습니다. 일부 디렉터리가 이미 존재하는 경우, 예를 들어 hey와 this는 이미 있고 나머지는 없다면, mkdir은 오류 없이 기존 디렉터리를 건너뛰고 그 아래에 나머지 디렉터리들을 생성합니다.
-p 옵션은 parents(부모) 옵션이며, 많은 배포판에서 -p 대신 --parents로 입력해서 사용할 수도 있습니다. 이 방식으로 사실상 무제한에 가까운 개수의 디렉터리를 한 번에 만들 수 있습니다. 생성된 디렉터리들은 다른 모든 디렉터리와 완전히 동일하게 작동합니다. 즉, 최상위 디렉터리를 삭제하려고 하면 비어 있지 않다는 오류 메시지가 뜨기도 합니다!
방법 2: 부모 옵션과 중괄호 확장(Brace Expansion) 함께 사용
중괄호 확장(brace expansion)은 bash 셸에서 하나의 패턴을 따르는 여러 디렉터리를 한 번에 만들 수 있는 기능입니다. 예를 들어 mkdir {1..4}를 입력하면 현재 디렉터리에 1부터 4까지 번호가 매겨진 네 개의 디렉터리가 생성됩니다. 이 개념을 부모 옵션과 결합할 수도 있습니다. 예를 들어 mkdir -p 1/{1..4}를 입력하고 Enter를 누르면 1이라는 디렉터리와 그 안에 1, 2, 3, 4라는 네 개의 하위 디렉터리가 만들어집니다. 매우 강력한 명령어 조합으로, 수많은 디렉터리를 한 번에 생성할 수 있어 리눅스에서 사진, 동영상, 음악 컬렉션을 정리하는 데 특히 유용합니다. 배포용 소프트웨어나 패키지의 설치 스크립트를 작성할 때 이 기법을 활용하는 경우도 많습니다.
물론 이 옵션들을 섞어서 명령어의 어느 부분에든 중괄호 확장을 추가할 수 있습니다. 일부 디렉터리는 중괄호 확장으로, 다른 디렉터리는 부모 재귀만으로 만들고 싶다면 mkdir -p a/directory/inside{1..4} 같은 명령어를 시도해 볼 수 있습니다. 이 명령은 a와 그 안의 directory, 그리고 그 아래에 inside1, inside2, inside3, inside4를 생성합니다. mkdir 명령어 사용법을 익힌 후에는 각 디렉터리 안에 추가 디렉터리를 만들며 자유롭게 실험해 보세요. 단, 다른 디렉터리가 포함된 디렉터리는 재귀 삭제 옵션이나 파일 관리자를 사용하지 않으면 제거할 수 없다는 점을 기억하세요.
저자 소개

Kevin Arrows (케빈 애로우즈)
케빈 애로우즈는 10년 이상의 업계 경력을 지닌 베테랑 기술 전문가입니다. Microsoft Certified Technology Specialist(MCTS) 자격증을 보유하고 있으며, 최신 기술 동향을 꾸준히 학습하는 데 큰 열정을 가지고 있습니다. 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅 등 다양한 기술 분야에서 폭넓게 집필해 왔으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 동료들의 인정과 존경을 받고 있습니다.