перенаправление вывода команды в файл и терминал
Я пытаюсь бросить вывод команды в файл, плюс консоль. Это потому, что я хочу сохранить запись вывода в файл. Я делаю следующее, И он добавляется в файл, но не печатает ls
вывод на терминал.
$ls 2>&1 > /tmp/ls.txt
3 ответа:
да, если вы перенаправите вывод, он не будет отображаться на консоли. Используйте
tee
.ls 2>&1 | tee /tmp/ls.txt
стоит отметить, что 2 > &1 означает, что Стандартная ошибка также будет перенаправлена вместе со стандартным выходом. Так что
someCommand | tee someFile
дает вам только стандартный вывод в файл, но не стандартную ошибку: Стандартная ошибка отображается только в консоли. Чтобы получить стандартную ошибку в файле тоже, вы можете использовать
someCommand 2>&1 | tee someFile
(источник: в оболочке, что " 2>&1 "?). Наконец, обе вышеуказанные команды усекут файл и начнут очищать. Если вы используете последовательность команд, вы можете получить вывод и ошибку всех из них, один за другим. В этом случае вы можете использовать -флаг для команды "тройник":
someCommand 2>&1 | tee -a someFile