Как перенаправить стандартный вывод на несколько файлов журнала? Следующее не работает:
some_command 1> output_log_1 output_log_2 2>&1
linux
io-redirection
tee
двухэтажный
источник
источник
zsh
, вы можете использоватьsome_command >output_log_1 >output_log_2
.Ответы:
Смотрите
man tee
:Соответственно:
источник
cmd 2>&1 | tee log1 log2
я пытался выполнить, как указано выше, но мне нужно нажать Ctrl-C, чтобы перенаправить его во второй файл журнала. также вывод печатается на консоли. Я хочу, чтобы вывод команды перенаправлялся в журналы, но не на консоль. любая помощь приветствуется.tee
записываетstdin
в файл (ы), а также вstdout
. Если вы не хотите, чтобы вывод отображался на терминале, вы должны перенаправить его,/dev/null
как обычно.echo test | tee --append file1 file2
Допустим, ваш вывод генерируется из функции
cmd()
:Чтобы перенаправить вывод из
cmd
двух файлов, но не в консоль, вы можете использовать:Это будет работать для нескольких файлов с учетом любого источника данных:
Это также будет работать:
Без
/dev/null
перенаправления tee отправит вывод на стандартный вывод в дополнение к указанным файлам.Например, если это выполняется из консоли, вы увидите вывод там. Запустите из crontab, на выходе появится сообщение о состоянии, которое отправлено вам по почте (см. Также ответ Жиля здесь https://unix.stackexchange.com/a/100833/3998 ).
Это работало для меня в bash на Ubuntu 12.04 и было проверено в Ubuntu 14.04 с использованием GNU bash 4.3.11 (1), поэтому оно должно работать на любой последней версии GNU bash.
источник
version 4.3.11(1)-release (i686-pc-linux-gnu)
) в Ubuntu 14.04.Это старый пост, но я нашел его сейчас ...
Вместо перенаправления вывода
> /dev/null
вы можете перенаправить его в последний файл:Или для добавления вывода:
источник
-a
в ти)Как упомянул @jofel в комментарии к ответу, это может быть сделано изначально в
zsh
:или с расширением скобки:
Внутренне это работает очень похоже на
tee
ответы, представленные выше. Оболочка соединяет стандартный вывод команды с процессом, который передает несколько файлов; Таким образом, нет никаких убедительных технических преимуществ , чтобы делать это таким образом (но это действительно выглядят действительно хорошо). Смотрите наzsh
руководство больше.источник
Невозможно комментировать, однако, другой способ выразить
Можно упростить это при работе со многими файлами.
источник
file1
Through ,file8
как их имена , и те, скорее всего пример заполнители для имен файловМне нужен файл журнала сеанса и другой файл для всех сессий, которые я сделал:
echo blabla |tee thisession >>allsessions
источник
tee
уже упоминалась.