Как сохранить результат команды в файл?

Используйте оператор ядра > <file>: по умолчанию результат дописывается, а -r заменяет файл.

По умолчанию — дописывание

dns google.com > save.log по-прежнему показывает DNS-ответ в терминале и одновременно дописывает его текстовое представление в save.log в текущем каталоге lil-terminal. После результата терминал выводит разрешённый путь назначения. Повторная команда добавит новый ответ в конец и не удалит предыдущие данные.

Замена файла и явное дописывание

Чтобы заменить файл, укажите -r после пути: dns gmail.com > save.log -r. Флаг -a явно выбирает режим дописывания, который и так является стандартным. Путь с пробелами следует заключать в кавычки. Оператор обрабатывается ядром, поэтому отдельным модулям не нужны собственные флаги экспорта только ради сохранения показанного ответа.

Что можно перенаправлять

В файл записываются только результаты, которые можно представить как обычный текст. Интерактивные редакторы, запросы секретов, скачивание файлов и управляющие события браузера не превращаются в файл. Если команда уже использует > внутри собственного синтаксиса, этот смысл сохраняется; перенаправлением считается конечный оператор вывода.

Повторное использование последнего результата

history -o возвращает последний подходящий текстовый результат, сохранённый в текущей PHP-сессии. history -o > history.log записывает его с дописыванием, а history -o > history.log -r заменяет файл. Настольные сочетания Ctrl/Command+S запускают те же самые команды.

Почему значения задаются через двоеточие

В текущей грамматике знак > закреплён только за системным перенаправлением результата. Команды, принимающие значение, используют :: ini app.ini -w key : value, json app.json -w path : value, ses path : value, attr file key : value и db : SELECT .... Так исчезает двусмысленность, а command ... > file везде означает одно и то же. Если установлена старая версия модуля, ядро распознаёт её и выводит сообщение о миграции вместо молчаливой записи не тех данных.

Примеры

dns google.com > save.log
dns gmail.com > save.log -r
env > "logs/env current.log" -a
history -o > history.log
history -o > history.log -r

Связанная документация

← Вернуться в FAQ