---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/reference/ydb-cli/commands/dir.md?version=v25.3
  - https://ydb.tech/docs/ru/reference/ydb-cli/commands/dir.md?version=v25.3
  - href: ru/reference/ydb-cli/commands/dir.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/reference/ydb-cli/commands/dir.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

<!-- source: ru/reference/ydb-cli/commands/_includes/dir.md -->
# Директории

База данных YDB поддерживает внутри иерархическую структуру [директорий](https://ydb.tech/docs/ru/concepts/datamodel/dir.md?version=v25.3), в которых могут размещаться объекты БД.

YDB CLI поддерживает операции изменения структуры директорий, а также указание директории при обращении к объектам схемы.

## Создание директории {#mkdir}

Команда `scheme mkdir` создает директории:

``` bash
ydb [connection options] scheme mkdir <path>
```

<!-- source: ru/reference/ydb-cli/commands/_includes/conn_options_ref.md -->
, где `[connection options]` — опции [соединения с БД](https://ydb.tech/docs/ru/reference/ydb-cli/connect.md?version=v25.3#command-line-pars)
<!-- endsource: ru/reference/ydb-cli/commands/_includes/conn_options_ref.md -->

В параметре `path` указывается относительный путь создаваемой директории от корня директорий базы данных. Будут созданы все директории на этом пути, которые не существовали до момента вызова команды.

Если конечная директория на пути уже существовала, то выполнение команды завершится успешно (код результата 0) с выдачей предупреждения о том, что никаких изменений не было произведено:

```text
Status: SUCCESS
Issues:
<main>: Error: dst path fail checks, path: /<database>/<path>: path exist, request accepts it,
pathId: [OwnerId: <some>, LocalPathId: <some>], path type: EPathTypeDir, path state: EPathStateNoChanges
```

Также поддерживается синтаксис указания полного пути, начинающегося с символа `/`, который должен в этом случае содержать в начале [путь базы данных](https://ydb.tech/docs/ru/concepts/connect.md?version=v25.3#database), указанной в параметрах соединения, или с которой разрешаются операции через установленное соединение с кластером.

Примеры:

- Создание директории в корне базы данных

  ``` bash
  ydb --profile quickstart scheme mkdir dir1
  ```

- Создание директорий на указанном пути от корня базы данных

  ``` bash
  ydb --profile quickstart scheme mkdir dir1/dir2/dir3
  ```

## Удаление директории {#rmdir}

Команда `scheme rmdir` удаляет директорию:

```bash
ydb [global options...] scheme rmdir [options...] <path>
```

* `global options` — [глобальные параметры](https://ydb.tech/docs/ru/reference/ydb-cli/commands/global-options.md?version=v25.3).
* `options` — [параметры подкоманды](#rmdir-options).
* `path` — путь до удаляемой директории.

Посмотрите описание команды для удаления директории:

```bash
ydb scheme rmdir --help
```

### Параметры подкоманды {#rmdir-options}

Имя | Описание
---|---
`-r`, `--recursive` | Рекурсивное удаление директории вместе с дочерними объектами (поддиректориями, таблицами, топиками). При указании этого параметра по умолчанию будет запрошено подтверждение.
`-f`, `--force` | Не запрашивать никаких подтверждений.
`-i` | Запрашивать подтверждение на удаление каждого объекта.
`-I` | Однократно запросить подтверждение.
`--timeout <значение>` | Таймаут операции, мс.

При попытке удалить непустую директорию без указания параметра `-r` или `--recursive` команда не будет выполнена с выдачей ошибки:

``` text
Status: SCHEME_ERROR
Issues:
<main>: Error: path table fail checks, path: /<database>/<path>: path has children, request
doesn't accept it, pathId: [OwnerId: <some>, LocalPathId: <some>], path type:
EPathTypeDir, path state: EPathStateNoChanges, alive children: <count>
```

### Примеры {#rmdir-examples}

- Удаление пустой директории:

  ```bash
  ydb scheme rmdir dir1
  ```

- Удаление пустой директории с запросом подтверждения:

  ```bash
  ydb scheme rmdir -I dir1
  ```

- Рекурсивное удаление непустой директории с запросом подтверждения:

  ```bash
  ydb scheme rmdir -r dir1
  ```

- Рекурсивное удаление непустой директории без запроса подтверждения:

  ```bash
  ydb scheme rmdir -rf dir1
  ```

- Рекурсивное удаление непустой директории с запросом подтверждения на каждый объект:

  ```bash
  ydb scheme rmdir -ri dir1
  ```

## Использование директорий в других командах CLI {#use}

Во всех командах CLI, в которые передается параметром имя объекта, оно может быть указано с директорией, например в [`scheme describe`](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-describe.md?version=v25.3):

``` bash
ydb --profile quickstart scheme describe dir1/table_a
```

Команда [`scheme ls`](https://ydb.tech/docs/ru/reference/ydb-cli/commands/scheme-ls.md?version=v25.3) поддерживает передачу пути к директории в качестве параметра:

``` bash
ydb --profile quickstart scheme ls dir1/dir2
```

## Использование директорий в YQL {#yql}

Имена объектов в запросах на [языке YQL](https://ydb.tech/docs/ru/yql/reference/index.md?version=v25.3) могут содержать путь к директории, где находится этот объект. Этот путь будет конкатенирован с базовым путем, задаваемым [прагмой `TablePathPrefix`](https://ydb.tech/docs/ru/yql/reference/syntax/pragma.md?version=v25.3#table-path-prefix). Если прагма не указана, имя объекта разрешается относительно корня базы данных.

## Неявное создание директорий при импорте {#import}

При выполнении команды импорта данных создается дерево директорий по образцу каталога, из которого выполняется импорт.
<!-- endsource: ru/reference/ydb-cli/commands/_includes/dir.md -->
