Spec-Zone.ru › Nushell

watch для файловой системы

Отслеживать изменения файлов и выполнять код Nu при их появлении.

Сигнатура

> watch {flags} (path) (closure)

Флаги

  • --debounce, -d {duration}: Задержка обработки изменений на указанное время (по умолчанию: 100 мс). Измените это значение, если одна операция записи отображается как несколько событий.
  • --glob, -g {string}: Отображать только изменения файлов, соответствующих этому шаблону glob (по умолчанию: все файлы)
  • --recursive, -r {bool}: Рекурсивно отслеживать все каталоги внутри <path>. Игнорируется, если <path> — файл (по умолчанию: true).
  • --quiet, -q: Скрыть начальное сообщение о состоянии (по умолчанию: false).
  • --verbose, -v: Включить подробный режим (по умолчанию: false).

Параметры

  • path: Путь для отслеживания. Может быть файлом или каталогом.
  • closure: Код Nu, который будет выполняться при каждом изменении файла. Замыканию передаются аргументы operation, path и new_path (только при переименовании) именно в таком порядке (устарело).

Типы входных и выходных данных:

вход выход
ничего ничего
ничего table<operation: string, path: oneof<string, nothing>, new_path: oneof<string, nothing>>

Примеры

Запускать cargo test при каждом изменении файла Rust.

> for _ in (watch . --glob=**/*.rs) { cargo test }

Отслеживать все изменения в текущем каталоге.

> watch . | each { print }

Фильтровать, ограничивать и изменять вывод watch, используя его в конвейере.

> watch /foo/bar
    | where operation == Create
    | first 5
    | each {|e| $"New file!: ($e.path)" }
    | to text
    | save --append changes_in_bar.log

Выводить изменения файлов с задержкой обработки в 5 минут.

> watch /foo/bar --debounce 5min | each {|e| $"Registered ($e.operation) on ($e.path)" | print }

Примечание: если нужно выполнять команду через каждые N единиц времени, это можно сделать с помощью цикла и sleep.

> loop { command; sleep duration }

Запускать cargo test при каждом изменении файла Rust (с использованием устаревшего аргумента-замыкания).

> watch . --glob=**/*.rs {|| cargo test }

Примечания

При запуске без замыкания watch вместо этого возвращает поток событий.

Copyright © 2019–2026 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/watch.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API