2013-06-27 2 views
0

Как мы можем перенаправить как stdin, так и stderr короче? , пожалуйста, исправьте меня, если метод ниже. Также предложите мне любой другой способ сделать это сразу.Перенаправление в bash

command <file1.txt 2>file2.txt 

ответ

4

Если вы на самом деле означает stdin и stderr я не думаю, что есть «короткий путь»; даже если был какой-то синтаксисом для этого (весьма маловероятно), ваш пример показывает, что вы хотите использовать различных файлов, поэтому вы должны явно указать каждый Перенаправление абы ...

Однако для stdout и stderr (если вы хотите, чтобы эти перенаправлены в тот же файл), вы можете ввести:

command &> file.txt 
+3

Nice, не знал о '& > '. – ctn

3

То, как вы это делаете, является правильным. Вы не можете перенаправлять как stdin, так и stderr в тот же файл. Вы можете перенаправить стандартный вывод и стандартный поток ошибок в тот же файл, хотя:

command >file.txt 2>&1 
+0

+1, ваш ответ является правильным, и вы были быстрее :) только –

+0

@CostiCiudatu, потому что вы написали больше :) – ctn

0

Там на самом деле не «короче» путь сам по себе (я предполагаю, что по короче вы имеете в виду меньше символов).
Однако, в качестве альтернативы вы можете использовать:

cat file1.txt | command 2> file2.txt