> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Предоставляет доступ к файловой системе для получения списка файлов, их метаданных и содержимого.

# Табличная функция filesystem

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Not supported in ClickHouse Cloud
        </div>;
};

Рекурсивно обходит каталог и возвращает таблицу с метаданными файлов (путями, размерами, типами, правами доступа, временем изменения) и, при необходимости, содержимым файлов.

В режиме `clickhouse-server` путь должен находиться в каталоге [user\_files\_path](/ru/reference/settings/server-settings/settings#user_files_path). Символические ссылки внутри `user_files_path`, указывающие за его пределы, обрабатываются, но возвращаются только те записи, путь которых (через символическую ссылку) начинается с `user_files_path`.

В режиме `clickhouse-local` ограничений на путь нет.

<div id="syntax">
  ## Синтаксис
</div>

```sql theme={null}
filesystem([path])
```

<div id="arguments">
  ## Аргументы
</div>

| Параметр | Описание                                                                                                                                                                                                                                                |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`   | Каталог, содержимое которого нужно вывести. Может быть абсолютным путём (в режиме сервера должен находиться внутри `user_files_path`) или путём относительно `user_files_path`. Если пустой или не указан, по умолчанию используется `user_files_path`. |

<div id="returned_columns">
  ## Возвращаемые столбцы
</div>

| Столбец             | Тип                        | Описание                                                                                                                                                                                                                                                   |
| ------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`              | `String`                   | Каталог, содержащий запись (без имени самого файла или каталога).                                                                                                                                                                                          |
| `name`              | `String`                   | Имя файла или каталога (последний компонент пути).                                                                                                                                                                                                         |
| `file`              | `String` (ALIAS of `name`) | Псевдоним столбца `name`.                                                                                                                                                                                                                                  |
| `type`              | `Enum8`                    | Тип файла: `'none'`, `'not_found'`, `'regular'`, `'directory'`, `'symlink'`, `'block'`, `'character'`, `'fifo'`, `'socket'`, `'unknown'`.                                                                                                                  |
| `size`              | `Nullable(UInt64)`         | Размер файла в байтах (для обычных файлов). `NULL` для необычных файлов (каталогов, символьных ссылок и т. д.) и при ошибке.                                                                                                                               |
| `depth`             | `UInt16`                   | Глубина рекурсии. `0` — для самого запрошенного каталога и его непосредственного содержимого, `1` — для записей на один уровень глубже и так далее.                                                                                                        |
| `modification_time` | `Nullable(DateTime64(6))`  | Время последнего изменения с микросекундной точностью. `NULL` при ошибке.                                                                                                                                                                                  |
| `is_symlink`        | `Bool`                     | Является ли запись символьной ссылкой.                                                                                                                                                                                                                     |
| `content`           | `Nullable(String)`         | Содержимое файла (для обычных файлов). `NULL` для необычных файлов (каталогов, символьных ссылок и т. д.). Ошибки чтения приводят к исключению. Чтение этого столбца вызывает фактический файловый ввод-вывод, поэтому не выбирайте его без необходимости. |
| `owner_read`        | `Bool`                     | У владельца есть право на чтение.                                                                                                                                                                                                                          |
| `owner_write`       | `Bool`                     | У владельца есть право на запись.                                                                                                                                                                                                                          |
| `owner_exec`        | `Bool`                     | У владельца есть право на выполнение.                                                                                                                                                                                                                      |
| `group_read`        | `Bool`                     | У группы есть право на чтение.                                                                                                                                                                                                                             |
| `group_write`       | `Bool`                     | У группы есть право на запись.                                                                                                                                                                                                                             |
| `group_exec`        | `Bool`                     | У группы есть право на выполнение.                                                                                                                                                                                                                         |
| `others_read`       | `Bool`                     | У остальных есть право на чтение.                                                                                                                                                                                                                          |
| `others_write`      | `Bool`                     | У остальных есть право на запись.                                                                                                                                                                                                                          |
| `others_exec`       | `Bool`                     | У остальных есть право на выполнение.                                                                                                                                                                                                                      |
| `set_gid`           | `Bool`                     | Бит Set-GID.                                                                                                                                                                                                                                               |
| `set_uid`           | `Bool`                     | Бит Set-UID.                                                                                                                                                                                                                                               |
| `sticky_bit`        | `Bool`                     | Бит sticky.                                                                                                                                                                                                                                                |

Вычисляются только те столбцы, которые фактически используются в запросе, поэтому запрашивать только часть столбцов (особенно без `content`) эффективно.

<div id="examples">
  ## Примеры
</div>

<div id="list-files">
  ### Вывести список файлов в user\_files
</div>

```sql theme={null}
SELECT name, type, size, depth
FROM filesystem()
ORDER BY name;
```

<div id="find-large-files">
  ### Поиск больших файлов
</div>

```sql theme={null}
SELECT path, name, size
FROM filesystem()
WHERE type = 'regular' AND size > 1000000
ORDER BY size DESC;
```

<div id="read-contents">
  ### Чтение содержимого файла
</div>

```sql theme={null}
SELECT name, content
FROM filesystem('my_directory')
WHERE name LIKE '%.csv';
```

<div id="list-immediate">
  ### Вывести только непосредственные дочерние элементы
</div>

```sql theme={null}
SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
```
