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