Перенаправлення виводу
> >> 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— файл