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

> Clickhouse-disks 문서

# Clickhouse-disks

ClickHouse 디스크에서 파일 시스템과 유사한 작업을 수행할 수 있는 유틸리티입니다. 대화형 모드와 비대화형 모드 모두에서 사용할 수 있습니다.

<div id="program-wide-options">
  ## 프로그램 전체 옵션
</div>

* `--config-file, -C` -- ClickHouse 구성 파일 경로이며, 기본값은 `/etc/clickhouse-server/config.xml`입니다.
* `--save-logs` -- 호출된 명령의 진행 로그를 `/var/log/clickhouse-server/clickhouse-disks.log`에 기록합니다.
* `--log-level` -- 기록할 이벤트의 [유형](/ko/reference/settings/server-settings/settings#logger)이며, 기본값은 `none`입니다.
* `--disk` -- `mkdir, move, read, write, remove` 명령에 사용할 디스크를 지정합니다. 기본값은 `default`입니다.
* `--query, -q` -- 대화형 모드를 시작하지 않고 실행할 수 있는 단일 쿼리입니다.
* `--help, -h` -- 설명과 함께 모든 옵션과 명령을 출력합니다.

<div id="lazy-initialization">
  ## 지연 초기화
</div>

config에서 사용할 수 있는 모든 디스크는 지연 초기화됩니다. 즉, 디스크에 해당하는 객체는 해당 디스크가 어떤 명령에서 실제로 사용될 때만 초기화됩니다. 이렇게 하는 이유는 유틸리티의 안정성을 높이고, config에 정의되어 있지만 사용되지 않아 초기화 과정에서 실패할 수 있는 디스크에 불필요하게 접근하지 않기 위해서입니다. 다만, `clickhouse-disks`를 시작할 때 초기화되는 디스크가 하나는 있어야 합니다. 이 디스크는 명령줄의 `--disk` 매개변수로 지정하며, 기본값은 `default`입니다.

<div id="default-disks">
  ## 기본 디스크
</div>

실행 후에는 구성에 지정되지 않았지만 초기화에 사용할 수 있는 디스크가 2개 있습니다.

1. **`local` 디스크**: 이 디스크는 `clickhouse-disks` 유틸리티를 실행한 로컬 파일 시스템을 모방하도록 설계되었습니다. 초기 경로는 `clickhouse-disks`를 시작한 디렉터리이며, 파일 시스템의 루트 디렉터리에 마운트됩니다.

2. **`default` 디스크**: 이 디스크는 구성의 `clickhouse/path` 매개변수에 지정된 디렉터리의 로컬 파일 시스템에 마운트됩니다(기본값은 `/var/lib/clickhouse`입니다). 초기 경로는 `/`로 설정됩니다.

<div id="clickhouse-disks-state">
  ## Clickhouse-disks 상태
</div>

유틸리티는 추가된 각 디스크의 현재 디렉터리를 저장합니다(일반적인 파일 시스템과 마찬가지임). 사용자는 현재 디렉터리를 변경하고 디스크 간에 전환할 수 있습니다.

상태는 "`disk_name`:`path_name`" 형태의 프롬프트에 반영됩니다.

<div id="commands">
  ## 명령어
</div>

이 문서 파일에서는 모든 필수 위치 인수를 `<parameter>`로, 이름 있는 인수는 `[--parameter value]`로 표기합니다. 모든 위치 매개변수는 해당하는 이름의 이름 있는 매개변수로도 지정할 수 있습니다.

* `cd (change-dir, change_dir) [--disk disk] <path>`
  `disk` 디스크의 `path` 경로로 디렉터리를 변경합니다(기본값은 현재 디스크). 디스크는 전환되지 않습니다.
* `copy (cp) [--disk-from disk_1] [--disk-to disk_2] <path-from> <path-to>`.
  `disk_1` 디스크의 `path-from`에서 `path-to`로 데이터를 재귀적으로 복사합니다(`disk_1`의 기본값은 현재 디스크이며, 비대화형 모드에서는 매개변수 `disk`).
  대상은 `disk_2` 디스크의 `path-to`입니다(`disk_2`의 기본값은 현재 디스크이며, 비대화형 모드에서는 매개변수 `disk`).
* `current_disk_with_path (current, current_disk, current_path)`
  현재 상태를 다음 포맷으로 출력합니다:
  `Disk: "current_disk" Path: "current path on current disk"`
* `help [<command>]`
  `command` 명령어의 도움말 메시지를 출력합니다. `command`를 지정하지 않으면 모든 명령어에 대한 정보를 출력합니다.
* `move (mv) <path-from> <path-to>`.
  현재 디스크 내에서 파일 또는 디렉터리를 `path-from`에서 `path-to`로 이동합니다.
* `remove (rm, delete) <path>`.
  현재 디스크에서 `path`를 재귀적으로 삭제합니다.
* `link (ln) <path-from> <path-to>`.
  현재 디스크에서 `path-from`에서 `path-to`로 하드 링크를 생성합니다.
* `list (ls) [--recursive] <path>`
  현재 디스크의 `path`에 있는 파일을 나열합니다. 기본값은 비재귀입니다.
* `list-disks (list_disks, ls-disks, ls_disks)`.
  디스크 이름을 나열합니다.
* `mkdir [--recursive] <path>` 현재 디스크에서 실행합니다.
  디렉터리를 생성합니다. 기본값은 비재귀입니다.
* `read (r) <path-from> [--path-to path]`
  `path-from`의 파일을 읽어 `path`로 출력합니다(지정하지 않으면 `stdout`).
* `switch-disk [--path path] <disk>`
  `path` 경로의 `disk` 디스크로 전환합니다(`path`를 지정하지 않으면 기본값은 `disk` 디스크의 이전 경로).
* `write (w) [--path-from path] <path-to>`.
  `path`의 파일을 `path-to`에 씁니다(`path`를 지정하지 않으면 `stdin`을 사용하며, 입력은 Ctrl+D로 종료해야 합니다).
