В чем разница между перенаправлением ./prog 2>&1 1>file.txt и ./prog >a.txt 2>&1? Похоже, что ./prog 2>&1 1>file.txt не сохраняет stderr в файл, а это ./prog >a.txt 2>&1 делает.
1 ответ
4
Операторы перенаправления проверяются слева направо, таким образом,
foo > bar 2>&1
сначала перенаправляет стандартный вывод в bar а затем перенаправляет стандартную ошибку в то место, где стандартный вывод перенаправляется в этой точке (таким образом, тоже bar ).
foo 2>&1 > bar
сначала перенаправляет стандартную ошибку на то, на что указывает стандартный вывод (скорее всего, на терминал), а затем перенаправляет стандартный вывод на bar .
Коротко: первый перенаправляет как stdout и stderr на bar , второй перенаправляет только stdout на bar и stderr на терминал.
