# Вложенные папки за один раз: mkdir -p

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/1-7-vlozhennye-papki-mkdir-p

Флаг -p у mkdir создаёт целую цепочку вложенных папок одной командой. Когда он нужен.

В прошлых уроках ты создавал папки по одной. Но что, если нужно сразу несколько уровней вложенности — папка внутри папки внутри папки? Делать это руками по шагам долго. К счастью, есть способ создать всю цепочку за один раз.

## Когда обычный mkdir спотыкается

Представь, что ты хочешь получить такую структуру: папка `projects`, внутри неё `web`, а внутри `web` — папка `src`. Кажется логичным написать так:

```
mkdir projects/web/src
```

Но если папок `projects` и `web` ещё **нет**, терминал ответит ошибкой вроде «No such file or directory». Дело в том, что обычный `mkdir` создаёт только **последнюю** папку в пути и считает, что все промежуточные уже существуют. А их-то и нет.

`mkdir projects/web/src` сработает, только если `projects` и `web` уже созданы заранее. Иначе команда упадёт — ей просто негде создать `src`.

## Флаг -p — создаём всю цепочку сразу

Чтобы не создавать папки по одной, добавь к команде флаг `-p` (от *parents* — «родители»):

```
mkdir -p projects/web/src
```

Теперь `mkdir` сам по пути создаст всё, чего не хватает: сначала `projects`, потом внутри неё `web`, а внутри неё `src`. Если какая-то из папок уже была — ничего страшного, она останется на месте, ошибки не будет.

Флаг — это «настройка» для команды, которая пишется после её имени через пробел и обычно начинается с дефиса. `-p` говорит `mkdir`: «не ленись, создай и всех родителей тоже».

## Попробуй

Твоя задача — одной командой создать вложенную папку `projects/web/src`:

```
mkdir -p projects/web/src
```

Терминал, как обычно, промолчит — значит, всё получилось. Хочешь убедиться? Зайди внутрь через `cd projects/web` и посмотри `ls` — увидишь там папку `src`.
