linux - экран - перенаправление ввода вывода си




Как я могу перенаправить и добавить как stdout, так и stderr в файл с Bash? (4)

Чтобы перенаправить stdout в усеченный файл в Bash, я знаю, что нужно использовать:

cmd > file.txt

Чтобы перенаправить stdout в Bash, добавляя к файлу, я знаю, что нужно использовать:

cmd >> file.txt

Чтобы перенаправить оба stdout и stderr в усеченный файл, я знаю, что нужно использовать:

cmd &> file.txt

Как перенаправить оба файла stdout и stderr в файл? cmd &>> file.txt не работал для меня.


В Bash 4 (а также ZSH 4.3.11):

cmd &>>outfile

просто из коробки


В Bash вы также можете явно указать свои переадресации на разные файлы:

cmd >log.out 2>log_error.out

Добавление будет:

cmd >>log.out 2>>log_error.out

Попробуй это

You_command 1>output.log  2>&1

Ваше использование файла &> x.file работает в bash4. простите за это : (

Вот несколько дополнительных советов.

0, 1, 2 ... 9 - файловые дескрипторы в bash.

0 означает stdin , 1 означает stdout , 2 - stderror . 3 ~ 9 является запасным для любого другого временного использования.

Любой файловый дескриптор можно перенаправить в другой файловый дескриптор или файл с помощью оператора > или >> (добавить).

Использование: < file_descriptor >> < filename | & file_descriptor >

Пожалуйста, обратитесь к http://www.tldp.org/LDP/abs/html/io-redirection.html


Это должно работать нормально:

your_command 2>&1 | tee -a file.txt

Он сохранит все журналы в файле file.txt, а также сбросит их на терминал.





pipe