[IT-방법] mkdir 명령어 사용법 완전 정복하기 – 초보 개발자를 위한 디렉터리 생성과 실무 옵션 가이드

mkdir 명령어로 디렉터리 생성를 수행하는 모습을 표현한 대표 이미지

터미널에서 마주하는 당혹스러운 오류, 디렉터리 생성부터 시작해요

새로운 프로젝트를 시작하려고 리눅스 서버에 접속했어요. 폴더 구조를 잡기 위해 명령어를 입력했는데, “mkdir: failed to create directory ‘project/src/main’: No such file or directory”라는 빨간 글씨의 에러 메시지가 화면을 채우면 순간적으로 당황스러울 수밖에 없어요. 윈도우나 맥 OS에서는 마우스 오른쪽 버튼을 누르고 ‘새 폴더’를 클릭하면 끝날 일인데, 왜 터미널에서는 이렇게 복잡한 오류가 발생하는 걸까요?

이런 문제는 단순히 명령어를 몰라서 발생하는 것이 아니라, 리눅스의 디렉터리 계층 구조와 경로(Path)의 원리를 정확히 이해하지 못했을 때 자주 나타나요. 특히 서버 운영을 처음 맡게 된 주니어 개발자라면, 디렉터리를 하나 만드는 사소한 작업조차 큰 벽처럼 느껴질 때가 많아요. 하지만 걱정하지 마세요. mkdir 명령어 사용법만 제대로 익혀두면, 이런 오류는 더 이상 여러분을 괴롭히지 못해요.

단순히 폴더를 만드는 법을 넘어, 여러 개의 폴더를 한 번에 생성하거나, 권한을 설정하며 동시에 만드는 방법까지 실무에서 바로 써먹을 수 있는 기술들을 알려드릴게요. 이 글을 끝까지 읽고 나면, 여러분은 터미널 환경에서 자유롭게 구조를 설계할 수 있는 능력을 갖추게 될 거예요.

이번 글에서는 다음과 같은 내용들을 차근차근 살펴볼 예정이에요.

  • mkdir 명령어의 가장 기본적인 구문과 활용법
  • 하위 디렉터리까지 한 번에 만드는 마법 같은 옵션
  • 실무 보안을 위한 디렉터리 권한 설정 방법
  • 자주 발생하는 오류 상황과 명쾌한 해결책

명령어를 입력하기 전, 꼭 알아야 할 기초 지식

무작정 명령어를 입력하기 전에, 리눅스의 파일 시스템이 어떻게 작동하는지 먼저 이해해야 해요. 리눅스는 모든 것이 파일과 디렉터리로 이루어진 계층적 구조를 가지고 있어요. 우리가 흔히 말하는 ‘폴더’가 리눅스에서는 디렉터리(Directory)라고 불린다는 점을 기억해 주세요.

특히 명령어를 쓸 때 가장 헷갈리는 부분이 바로 경로(Path)예요. 내가 지금 어디에 있는지, 그리고 내가 만들려는 폴더가 어디에 위치할지를 정확히 지정해야 명령어가 제대로 동작하거든요. 경로에는 크게 두 가지 방식이 있어요.

💡 알아두기
리눅스에서 경로를 나타낼 때, 슬래시(/)는 디렉터리 간의 구분을 의미해요. 맨 앞에 슬래시가 붙으면 루트(Root)부터 시작하는 절대 경로이고, 붙지 않으면 현재 위치를 기준으로 하는 상대 경로예요.

작업을 시작하기 전에 아래 표를 통해 두 경로의 차이점을 명확히 구분해 보세요. 이 차이를 모르면 엉뚱한 곳에 디렉터리를 만들고 한참을 헤매게 될 수도 있어요.

구분 방식 특징 예시
절대 경로 최상위 루트(/)부터 전체 주소를 다 적는 방식 /home/user/data
상대 경로 현재 내 위치를 기준으로 위치를 지정하는 방식 현재 디렉터리 현재 위치를 나타내는 특수 기호 . (점 하나)
상위 디렉터리 현재 위치의 바로 위 부모 폴더 .. (점 두 개)

또한, 서버 운영 파일관리를 할 때는 권한(Permission) 개념도 머릿속에 넣어두어야 해요. 디렉터리를 만들 수는 있지만, 해당 위치에 디렉터리를 생성할 권한이 없다면 명령은 실패하거든요. 따라서 작업을 시작하기 전, 자신이 현재 어떤 사용자(User)로 접속해 있는지, 그리고 해당 경로에 쓰기 권한이 있는지를 확인하는 습관을 들이는 것이 좋아요.

실무에서 바로 쓰는 mkdir 명령어 단계별 활용법

이제 본격적으로 터미널을 열고 실습해 볼 시간이에요. 단순히 명령어를 외우는 것보다, 어떤 상황에서 어떤 옵션을 써야 하는지 시나리오를 통해 익히는 것이 훨씬 효과적이에요. 총 5개의 단계로 나누어 핵심 기능들을 정복해 볼게요.

STEP 1. 가장 기본적인 단일 디렉터리 생성하기

가장 먼저 익혀야 할 것은 아주 단순한 형태의 명령어예요. 새로운 폴더 하나를 만들고 싶을 때는 mkdir [디렉터리명] 형식을 사용하면 돼요. 예를 들어, 현재 위치에 ‘project’라는 폴더를 만들고 싶다면 다음과 같이 입력해요.

mkdir project

명령어를 입력하고 엔터를 눌렀을 때, 아무런 메시지가 뜨지 않고 다음 줄로 넘어갔다면 성공이에요! 리눅스는 명령이 성공했을 때 별도의 확인 메시지를 띄우지 않는 경우가 많거든요. 만약 제대로 만들어졌는지 확인하고 싶다면 ls 명령어를 입력해 보세요. 목록에 ‘project’가 보인다면 완벽하게 성공한 것이에요.

STEP 2. 여러 개의 디렉터리를 한 번에 만들기

프로젝트를 시작할 때 ‘logs’, ‘data’, ‘config’처럼 여러 개의 폴더를 동시에 만들어야 할 때가 있죠? 이때 하나씩 명령어를 입력하는 건 매우 비효율적이에요. mkdir 명령어는 공백을 구분자로 사용하여 여러 이름을 한 번에 입력받을 수 있어요.

mkdir logs data config

이렇게 입력하면 세 개의 디렉터리가 동시에 생성돼요. 서버 운영 환경에서 초기 폴더 구조를 빠르게 잡아나갈 때 정말 유용한 기능이에요. 다만, 폴더 이름 사이에 공백이 들어가는 경우에는 이야기가 달라져요. 폴더 이름을 ‘my project’라고 만들고 싶다면 반드시 큰따옴표를 사용해야 한다는 점을 잊지 마세요. 그렇지 않으면 ‘my’와 ‘project’라는 두 개의 폴더가 생겨버리거든요.

STEP 3. 하위 디렉터리까지 한꺼번에 생성하기 (핵심 옵션 -p)

아까 도입부에서 언급했던 에러 메시지의 주인공, 바로 이 단계에서 해결할 수 있어요. 만약 여러분이 project/src/main이라는 깊은 경로의 폴더를 만들고 싶은데, ‘project’나 ‘src’ 폴더가 아직 없는 상태라면 일반적인 mkdir 명령어로는 에러가 발생해요. 이때 필요한 것이 바로 -p 옵션이에요.

mkdir -p project/src/main

여기서 -p는 ‘parents’의 약자로, 지정한 경로에 중간 단계의 디렉터리가 없다면 자동으로 만들어주는 아주 똑똑한 옵션이에요. 이 옵션을 사용하면 경로의 중간 단계가 비어 있더라도 에러 없이 끝까지 폴더를 생성해 주죠. 실무에서 자동화 스크립트를 짤 때 이 옵션을 빼먹으면 스크립트가 중간에 멈춰버리는 대참사가 발생할 수 있으니 꼭 기억해 두세요!

STEP 4. 생성과 동시에 권한 설정하기 (옵션 -m)

서버를 운영하다 보면 보안이 매우 중요해져요. 어떤 폴더는 모든 사용자가 읽을 수 있어야 하지만, 어떤 폴더는 오직 나만 접근할 수 있어야 하죠. 디렉터리를 만든 후에 따로 권한을 수정하는 것도 방법이지만, -m 옵션을 쓰면 생성하는 순간에 원하는 권한을 바로 부여할 수 있어요.

mkdir -m 700 private_data

위 명령어는 ‘private_data’라는 폴더를 만들면서, 동시에 소유자 외에는 아무도 접근할 수 없도록 권한을 700으로 설정해요. 여기서 숫자는 리눅스 권한 체계(Octal mode)를 의미하는데, 755(일반적), 700(개인용), 644(파일용) 등 상황에 맞는 숫자를 미리 숙지해 두면 업무 효율이 엄청나게 올라가요.

STEP 5. 실무 시나리오: 웹 서버 환경 구축하기

자, 이제 배운 모든 것을 종합해 볼까요? 여러분이 새로운 웹 서비스를 위해 서버에 접속했다고 가정해 볼게요. 웹 콘텐츠는 html 폴더에, 스타일 시트는 css 폴더에, 그리고 이미지 파일은 images 폴더에 넣는 구조를 만들고 싶어요. 게다가 이 모든 폴더는 /var/www/my_site 라는 경로 아래에 있어야 합니다.

이때는 다음과 같이 한 줄의 명령어로 깔적으로 구조를 설계할 수 있어요.

🚀 실무 명령어 예시
mkdir -p /var/www/my_site/{html,css,images}

위 명령어는 중괄호({ })를 사용하는 ‘브레이스 확장(Brace Expansion)’ 기법까지 결합한 형태예요. 이렇게 하면 매우 복잡한 구조도 단 몇 초 만에 완벽하게 생성할 수 있답니다. 이런 방식은 실제 운영 환경에서 설정 파일이나 로그 폴더를 구성할 때 매우 자주 사용되는 고급 기술이에요.

자주 하는 실수와 해결법 및 자주 묻는 질문

명령어를 익혔더라도 실제 현장에서는 예상치 못한 변수들이 나타나기 마련이에요. 가장 흔하게 겪는 실수들을 정리했으니, 비슷한 상황이 생기면 바로 적용해 보세요.

자주 하는 실수와 해결법

  • 실수: “Permission denied” 에러가 뜨며 폴더가 안 만들어져요.
    👉 원인: 현재 로그인한 계정이 해당 경로에 디렉터리를 생성할 권한이 없기 때문이에요.
    👉 해결: 명령어 앞에 sudo를 붙여 관리자 권한으로 실행해 보세요. (예: sudo mkdir folder_name)
  • 실수: 폴더 이름에 공백을 넣었는데, 폴더가 두 개로 쪼개져서 만들어져요.
    👉 원인: 리눅스 터미널은 공백을 명령어의 구분자로 인식하기 때문이에요.
    👉 해결: 폴더 이름을 “”(큰따옴표)로 감싸거나, 언더바(_)를 사용해 주세요. (예: mkdir "my folder" 또는 mkdir my_folder)
  • 실수: 이미 존재하는 폴더 이름으로 mkdir을 실행했는데 에러가 나요.
    👉 원인: mkdir은 이미 있는 폴더를 덮어쓰지 않으며, 기본적으로 기존 폴더가 있으면 에러를 반환해요.
    👉 해결: 폴더를 새로 만들려는 것이 아니라 경로만 확인하고 싶다면 ls를 쓰시고, 기존 폴더가 있어도 상관없이 하위 경로까지 만들고 싶다면 -p 옵션을 사용하세요.
  • 실수: 아주 긴 경로를 입력했는데 중간에 경로가 없다고 나와요.
    👉 원인: 중간 단계의 디렉터리가 존재하지 않기 때문이에요.
    👉 해결: 반드시 -p 옵션을 추가해서 실행하세요.

자주 묻는 질문

Q. 디렉터리를 만든 후에 이름을 바꾸고 싶을 때는 어떻게 하나요?

mkdir 명령어로는 이름을 바꿀 수 없어요. 대신 mv (move) 명령어를 사용해야 해요. mv old_name new_name이라고 입력하면 이름이 변경돼요.

Q. 비어있는 디렉터리만 삭제하는 명령어는 무엇인가요?

rmdir 명령어를 사용하면 돼요. 하지만 폴더 안에 파일이 하나라도 들어있으면 삭제되지 않으니 주의하세요. 내용물까지 한꺼번에 지우려면 rm -rf를 사용해야 해요.

Q. mkdir 명령어로 파일도 동시에 만들 수 있나요?

아니요, mkdir은 오직 디렉터리(폴더)만을 만드는 명령어예요. 파일을 만들고 싶다면 touch 명령어를 사용해야 합니다.

Q. 권한 숫자(755, 700 등)가 너무 헷갈려요. 쉽게 기억하는 법이 있을까요?
첫 번째 숫자는 ‘나(소유자)’, 두 번째는 ‘그룹’, 세 번째는 ‘나머지(Others)’를 의미해요. 7은 모든 권한, 5는 읽기와 실행만, 0은 아무 권한도 없음을 의미한다고 생각하면 쉬워요.

Q. 특정 디렉터리가 생성되었는지 터미널에서 바로 확인하는 꿀팁이 있나요?
명령어 뒤에 && ls -d [폴더명]을 붙여보세요. 생성에 성공했을 때만 폴더 목록을 보여주므로 성공 여부를 즉시 알 수 있어요.

리눅스 파일 관리의 첫걸음, 이제 직접 해보세요

오늘 우리는 리눅스 서버 운영의 가장 기본이자 핵심인 mkdir 명령어에 대해 깊이 있게 살펴보았어요. 처음에는 검은 화면과 명령어가 낯설고 어렵게 느껴질 수 있지만, 하나씩 직접 입력해 보다 보면 어느새 터미널과 친해진 자신을 발견하게 될 거예요.

단순히 폴더 하나를 만드는 것에서 시작해, 복잡한 서버 구조를 한 번에 설계하는 능력까지 갖추게 된 것을 축하드려요! 오늘 배운 내용을 잊지 않도록 아래 요약 박스를 꼭 확인해 보세요.

✅ 핵심 요약

  • 단일 폴더 생성: mkdir [이름]
  • 여러 폴더 생성: mkdir [이름1] [이름2]
  • 하위 폴더 포함 생성: mkdir -p [경로/이름]
  • 권한 지정 생성: mkdir -m [권한] [이름]
  • 공백 포함 폴더명: 반드시 큰따옴표 사용 ""
  • 권한 오류 시: sudo 명령어 활용

다음 단계로 나아가기 위해 오늘 할 일을 정해볼까요?

  • 오늘 할 일: 터미널을 열고 mkdir -p test/a/b/c 명령어를 입력해 보세요.
  • 이번 주 할 일: ls, cd, pwd 명령어를 함께 연습하며 디렉터리 간 이동을 익히세요.
  • 실행 직전 할 일: 파일 관리의 다음 단계인 rm(삭제)과 cp(복사) 명령어 가이드를 읽어보세요.

지금 바로 터미널을 열고 연습해 보세요. 직접 손으로 익힌 명령어만이 진짜 여러분의 실력이 됩니다. 궁금한 점이 있다면 언제든 댓글로 남겨주세요!

함께 읽으면 좋은 글: 리눅스 파일관리 명령어 모음 글로 연결

댓글 남기기