Я удивлен, что за почти десять лет никто еще не опубликовал этот подход:
Если вы используете более старые версии bash, где &>>
недоступно, вы также можете сделать:
(cmd 2>&1) >> file.txt
Это порождает подоболочку, поэтому она менее эффективна, чем традиционный подход cmd >> file.txt 2>&1
, но этот подход кажется мне более естественным и понятным:
- Перенаправить stderr на стандартный вывод.
- Перенаправить новый стандартный вывод, добавив в файл.
Кроме того, скобки убирают любую двусмысленность порядка, особенно если вы хотите вместо этого передать stdout и stderr другой команде.