
왜 리눅스에서 디렉터리 생성을 먼저 배워야 할까요?
검은색 화면에 하얀 글씨만 가득한 터미널 창을 처음 마주했을 때, 막막한 기분이 드는 건 아주 당연한 일이에요. 윈도우나 맥처럼 마우스로 아이콘을 우클릭해서 ‘새 폴더 만들기’를 누를 수 없으니까요. mkdir 명령어 기초를 모른다면, 리눅스라는 거대한 세계에서 내가 원하는 방을 하나도 만들지 못한 채 길을 잃을 수도 있어요.
서버 운영이나 개발 업무를 시작하면 수많은 파일을 관리해야 해요. 로그 파일이 저장될 폴더, 소스 코드가 들어갈 폴더, 설정 파일이 위치할 폴더를 제때, 정확한 위치에 만들어두지 않으면 시스템이 엉망이 되거나 심지어 서비스가 멈춰버리는 사고가 발생하기도 해요. 그래서 디렉터리를 만드는 법은 단순히 폴더를 만드는 기술을 넘어, 서버 운영의 질서를 잡는 첫 번째 규칙이라고 할 수 있어요.
오늘 이 글을 끝까지 읽고 나면, 여러분은 더 이상 터미널 앞에서 당황하지 않게 될 거예요. 복잡한 경로를 한 번에 만들거나, 여러 개의 폴더를 순식간에 생성하는 숙련된 서버 운영자의 모습을 갖추게 될 거예요. 기초부터 실무 팁까지 차근차근 알려드릴 테니 걱정 말고 따라와 주세요.
- mkdir 명령어의 기본 문법과 작동 원리
- 실무에서 유용하게 쓰이는 필수 옵션 3가지
- 계층 구조를 한 번에 만드는 고급 활용법
- 명령어 실행 시 마주치는 오류와 해결 방법
시작 전 꼭 확인해야 할 기초 지식과 환경 준비
명령어를 입력하기 전에, 우리가 지금 무엇을 다루고 있는지 정확히 아는 것이 중요해요. 리눅스에서는 ‘폴더’라는 말 대신 디렉터리(Directory)라는 용어를 주로 사용해요. 개념은 같지만, 터미널 환경에 익숙해지려면 이 용어에 귀를 기울여야 해요.
또한, 명령어를 입력할 때 가장 중요한 것은 현재 내가 어디에 있는지를 파악하는 것이에요. 이를 ‘현재 작업 디렉터리’라고 불러요. 내가 지금 내 방에 있는지, 아니면 거실에 있는지 모른 채로 물건을 놓으려고 하면 엉뚱한 곳에 물건을 두게 되는 것과 같답니다. 리눅스에서는 이 위치를 경로(Path)라고 부르며, 절대 경로와 상대 경로라는 두 가지 방식으로 표현해요.
- Root(/): 리눅스 시스템의 최상위 지점, 모든 디렉터리의 시작점이에요.
- Home(~): 각 사용자의 개인 공간으로, 로그인하면 가장 먼저 도착하는 곳이에요.
- Absolute Path(절대 경로): 루트(/)부터 시작해서 목적지까지의 전체 주소예요.
- Relative Path(상대 경로): 현재 위치를 기준으로 목적지까지 가는 방법이에요.
명령어를 실습하기 위해서는 리눅스 환경이 필요해요. 자신의 컴퓨터에 직접 설치하기 부담스럽다면, 가상 머신(VM)이나 클라우드 환경을 활용하는 것이 가장 안전하고 좋은 방법이에요. 아래 표를 통해 어떤 환경에서 연습하면 좋을지 비교해 보세요.
| 연습 환경 | 장점 | 단점 | 추천 대상 |
|---|---|---|---|
| 가상 머신(VirtualBox) | 내 컴퓨터 안에서 안전하게 모든 걸 해볼 수 있어요. | 설치 과정이 조금 복잡할 수 있어요. | 본격적으로 공부하고 싶은 학생 |
| 클라우드(AWS, GCP) | 실제 서버 환경과 가장 유사해요. | 사용량에 따라 비용이 발생할 수 있어요. | 서버 운영을 꿈꾸는 예비 엔지니어 |
| WSL (Windows Subsystem for Linux) | 윈도우에서 바로 리눅스를 쓸 수 있어 아주 편해요. | 완전한 독립형 리눅스와는 약간 차이가 있어요. | 가볍게 기초를 배우고 싶은 입문자 |
준비가 되었다면, 이제 본격적으로 명령어를 사용해 볼까요? 실습 환경이 마련되었다면 바로 시작할 수 있어요!
실무에서 바로 쓰는 mkdir 명령어 단계별 가이드
이제 진짜 명령어를 입력해 볼 시간이에요. mkdir는 make directory의 줄임말로, 말 그대로 디렉터리를 만드는 일을 해요. 단순히 폴더 하나 만드는 것부터, 복잡한 구조를 한 번에 구축하는 법까지 5단계로 나누어 상세히 설명해 드릴게요.
STEP 1. 가장 기본이 되는 단일 디렉터리 생성하기
가장 먼저 배워야 할 것은 가장 단순한 형태의 사용법이에요. 터미널에 mkdir 뒤에 원하는 이름을 적기만 하면 돼요.
mkdir [디렉터리_이름]
예: mkdir my_folder
예를 들어, `mkdir study`라고 입력하면 현재 내가 있는 위치에 ‘study’라는 이름의 폴더가 생겨요. 여기서 꼭 기억해야 할 점은 디렉터리 이름에 공백을 넣지 않는 것이에요. 만약 `mkdir my study`라고 치면, 컴퓨터는 ‘my’라는 폴더와 ‘study’라는 폴더를 각각 따로 두 개 만든다고 오해하거든요. 폴더 이름을 구분하고 싶다면 언더바(_)나 하이픈(-)을 사용하는 습관을 들이는 게 좋아요. 예를 들어 `my_study`나 `my-study`처럼 말이죠.
STEP 2. 여러 개의 디렉터리를 한 번에 만들기
일을 하다 보면 폴더를 하나씩 만들기가 참 번거로울 때가 있어요. 예를 들어, 이번 달 공부할 과목들을 폴더로 나누고 싶다면 하나씩 명령어를 칠 필요가 없어요. mkdir 명령어 뒤에 공백을 두고 이름을 쭉 나열하면 된답니다.
명령어 예시: `mkdir math english science history`
이렇게 입력하면 단 한 줄로 네 개의 폴더가 동시에 생겨나요. 이는 반복적인 작업을 줄여주는 아주 효율적인 방법이에요. 실무에서는 프로젝트를 시작할 때 `docs`, `src`, `test`, `bin`과 같이 기본적으로 필요한 폴더들을 한꺼번에 생성할 때 이 방식을 정말 많이 사용해요.
STEP 3. 계층 구조를 한 번에 만드는 -p 옵션 활용하기
이 단계가 mkdir 명령어의 꽃이라고 할 수 있어요. 보통 리눅스에서는 폴더 안에 폴더를 만들 때, 상위 폴더가 이미 존재해야만 하위 폴더를 만들 수 있어요. 예를 들어, `project/data/logs`라는 구조를 만들고 싶은데 `project` 폴더조차 없다면, 그냥 `mkdir project/data/logs`라고 쳤을 때 에러가 발생하며 실패하게 돼요.
이럴 때 사용하는 것이 바로 -p 옵션이에요. -p는 ‘parents’의 약자로, 중간 단계의 디렉터리가 없으면 자동으로 생성하면서 끝까지 만들어주는 아주 똑똑한 옵션이에요.
명령어 예시: `mkdir -p my_project/src/main/java`
이 명령어를 입력하면, 컴퓨터는 `my_project`를 만들고, 그 안에 `src`를 만들고, 또 그 안에 `main`을 만든 뒤 마지막으로 `java` 폴더까지 줄줄이 만들어내요. 개발 환경을 세팅하거나 서버의 로그 저장 경로를 설정할 때 이 옵션 하나면 수십 초가 걸릴 작업을 단 1초 만에 끝낼 수 있어요.
STEP 4. 권한 설정을 포함하여 만들기 -m 옵션 활용하기
서버 운영자라면 보안을 절대 놓쳐서는 안 돼요. 어떤 폴더는 누구나 읽을 수 있어야 하지만, 어떤 폴더는 오직 관리자만 접근할 수 있어야 하죠. mkdir 명령어를 사용할 때 -m 옵션을 쓰면, 폴더를 만듦과 동시에 권한(permission)을 바로 지정할 수 있어요.
리눅스의 권한은 숫자로 표현되는데, 예를 들어 `755`는 ‘소유자는 모든 권한을 갖고, 나머지는 읽고 실행만 가능’하다는 뜻이에요.
명령어 예시: `mkdir -m 700 private_folder`
이렇게 만들면 `private_folder`는 오직 폴더를 만든 본인만이 접근할 수 있는 아주 안전한 보안 폴더가 돼요. 나중에 폴더를 만든 뒤에 다시 `chmod`라는 명령어로 권한을 바꾸는 번거로움을 줄여주는 아주 유용한 기능이에요.
STEP 5. 실제 서버 운영 시나리오 연습하기
자, 이제 배운 내용을 바탕으로 실제 서버 운영자가 되어보는 시나리오를 진행해 볼게요. 여러분이 웹 서비스를 운영하는 관리자라고 가정해 봅시다. 웹 서버의 기본 구조를 만들어야 해요.
[시나리오: 웹 서비스 기본 디렉터리 구축]
1. 웹 소스 파일이 들어갈 경로 만들기: `mkdir -p /var/www/html`
2. 로그 파일이 저장될 경로 만들기: `mkdir -p /var/log/nginx/access`
3. 사용자별 개인 폴더 만들기 (보안 적용): `mkdir -m 700 /home/user_a`
4. 여러 개의 프로젝트 폴더 한 번에 만들기: `mkdir project_alpha project_beta project_gamma
위의 과정들을 하나씩 직접 터미널에 입력해 보세요. 단순히 명령어를 외우는 것보다, 어떤 상황에서 이 명령어가 필요한지를 상상하며 실습하는 것이 훨씬 기억에 오래 남는답니다. 처음에는 오타가 나서 에러가 날 수도 있지만, 괜찮아요. 그 과정 또한 아주 소중한 공부니까요!
자주 하는 실수와 해결법
명령어를 배우다 보면 누구나 실수를 해요. 특히 리눅스는 명령어가 아주 직관적이지만, 한 글자만 틀려도 의도치 않은 결과가 나올 수 있어 주의가 필요해요. 자주 발생하는 상황 5가지를 정리해 보았어요.
- ❌ Permission denied (권한 거부) →
사용자가 접근할 권한이 없는 시스템 폴더(예: /etc, /var)에 폴더를 만들려고 할 때 발생해요.
✅ 명령어 앞에 sudo를 붙여 관리자 권한으로 실행해 보세요. - ❌ File exists (파일이 이미 존재함) →
이미 같은 이름의 폴더나 파일이 있는 위치에 또 만들려고 할 때 나타나요.
✅ ls 명령어로 확인한 뒤, 이름을 바꾸거나 -p 옵션을 사용하여 기존 경로를 포함해 다시 시도하세요. - ❌ No such file or directory (경로를 찾을 수 없음) →
존재하지 않는 중간 폴더를 거쳐서 하위 폴더를 만들려고 할 때 발생해요.
✅ -p 옵션을 반드시 포함하여 실행하세요. - ❌ 의도치 않은 다중 폴더 생성 →
폴더 이름 사이에 공백을 넣었을 때 발생해요 (예: `mkdir my folder`).
✅ 이름을 붙일 때는 언더바(_)나 하이픈(-)을 사용하세요. - ❌ 경로 오타로 인한 엉뚱한 위치 생성 →
상대 경로를 잘못 계산해서 원치 않는 곳에 폴더가 생겼을 때예요.
✅ 명령어를 치기 전 pwd 명령어로 현재 위치를 꼭 확인하세요.
자주 묻는 질문
Q. 디렉터리 이름을 만들 때 띄어쓰기를 해도 되나요?
가능은 하지만 절대 추천하지 않아요. 리눅스 명령어는 공백을 ‘다음 명령’ 혹은 ‘다음 대상’으로 인식하기 때문에, 나중에 그 폴더로 이동하거나 파일을 복사할 때 매우 복잡한 명령어를 써야 하거든요. 대신 언더바(_)를 사용하는 습관을 들이는 것이 훨씬 똑똑한 방법이에요.
Q. 만든 디렉터리가 잘 만들어졌는지 어떻게 확인하나요?
가장 확실한 방법은 ls 명령어를 사용하는 거예요. 현재 위치의 목록을 보여주니까, 방금 만든 이름이 목록에 있는지 확인해 보세요. 만약 구조가 복잡하다면 ls -R 명령어를 써서 하위 폴더까지 한눈에 볼 수 있어요.
Q. 만든 디렉터리를 삭제하고 싶을 때는 어떻게 하나요?
디렉터리를 삭제할 때는 rmdir 명령어를 쓰거나, 내용물이 들어있는 폴더라면 rm -r 명령어를 사용해요. 하지만 실수로 중요한 폴더를 지울 수 있으니 삭제 전에는 항상 두 번, 세 번 확인하는 습관이 중요해요!
Q. 경로가 너무 길 때 일일이 치기 너무 힘들어요. 방법이 없나요?
터미널의 Tab(탭) 키를 활용해 보세요! 폴더 이름의 앞 글자만 치고 Tab을 누르면 컴퓨터가 자동으로 이름을 완성해 준답니다. 오타를 줄이는 최고의 비결이에요.
Q. 권한(Permission) 숫자가 헷갈려요. 어떻게 외우나요?
보통 4(읽기), 2(쓰기), 1(실행)의 합으로 계산해요. 모든 권한을 다 주면 4+2+1=7이 되는 식이죠. 처음에는 어렵겠지만 자주 쓰다 보면 자연스럽게 익숙해질 거예요.
리눅스 관리자로 가는 첫걸음을 축하해요
오늘 우리는 리눅스의 가장 기본적이면서도 강력한 도구인 mkdir 명령어 기초에 대해 깊이 있게 알아보았어요. 처음에는 검은 화면이 무섭게 느껴질 수 있지만, 명령어를 하나씩 익히고 내 의도대로 폴더가 척척 만들어지는 것을 보면 리눅스만의 매력에 푹 빠지게 될 거예요.
- 단일 폴더 생성은 mkdir [이름]
- 여러 폴더 생성은 mkdir [이름1] [이름2]
- 계층 구조 생성은 mkdir -p [경로]
- 권한 지정 생성은 mkdir -m [권한] [이름]
- 폴더 이름에는 공백 대신 언더바(_)를 사용하기
- 명령어 실행 전 pwd로 위치 확인하기
오늘 배운 내용을 단순히 눈으로만 보지 말고, 지금 바로 터미널을 열어 직접 입력해 보세요. 실습용 가상 머신을 하나 만들어 두면, 실수해도 괜찮으니 마음껏 이것저것 시도해 볼 수 있어서 훨씬 효율적이에요.
🚀 다음 단계로 나아가기:
오늘 폴더를 만드는 법을 배웠으니, 내일은 그 폴더 안으로 들어가는 법(cd), 폴더 안의 내용을 확인하는 법(ls), 그리고 파일을 생성하는 법(touch)을 배워보는 건 어떨까요? 이 명령어들만 익혀도 여러분은 이미 리눅스 초보를 벗어난 셈이에요.
리눅스 파일 관리에 대해 더 궁금한 점이 있다면, 리눅스 파일관리 명령어 모음 글을 함께 읽어보시는 것을 추천해 드려요. 여러분의 성장을 진심으로 응원할게요!