Перенаправление вывода
> >> 2>
Записать результат команды в файл вместо экрана
Как работает
Обычно команда печатает результат на экран. Символ > отправляет этот вывод в файл: ls > files.txt. Если файла нет, он создаётся, а если есть — старое содержимое стирается.
>> дописывает вывод в конец файла, не трогая того, что там уже есть, — так ведут логи. Ошибки идут отдельным потоком (stderr) и через > в файл не попадают, для них есть 2>. Чтобы собрать в файл и вывод, и ошибки, пишут команда > файл 2>&1.
Осторожно. > без предупреждения стирает содержимое файла. Перепутать > и >> — частый способ потерять лог или конфиг.
Синтаксис
<команда> > <файл>
<команда> >> <файл>
<команда> 2> <файл>
<команда> > <файл> 2>&1Примеры
Записать список файлов в files.txt (перезаписав его)
ls > files.txtто же самое:
ls >files.txtls— список файлов>— вывод в файл, старое содержимое стираетсяfiles.txt— файл
Дописать строку done в конец log.txt
echo "done" >> log.txtто же самое:
echo done >> log.txt,echo 'done' >> log.txt,echo "done" >>log.txtecho "done"— напечатать текст>>— дописать в конец файлаlog.txt— файл
Запустить npm test и сохранить только ошибки в errors.log
npm test 2> errors.logто же самое:
npm test 2>errors.lognpm test— команда2>— перенаправить поток ошибок (stderr)errors.log— файл