Как перенаправить stderr в файл

97

При использовании nohup для запуска команды в фоновом режиме часть содержимого появляется в терминале.

cp: error reading ‘/mnt/tt/file.txt’: Input/output error
cp: failed to extend ‘/mnt/tt/file.txt’: Input/output error

Я хочу сохранить этот контент в файл.

    
задан André M. Faria 18.05.2015 в 14:31
источник

1 ответ

153

Существует два основных потока вывода в Linux (и другие ОС), стандартный вывод (стандартный вывод) и стандартная ошибка (stderr). Сообщения об ошибках, например те, которые вы показываете, печатаются со стандартной ошибкой. Классический оператор перенаправления ( command > file ) перенаправляет только стандартный вывод, поэтому стандартная ошибка все еще отображается на терминале. Чтобы перенаправить stderr, у вас есть несколько вариантов:

  1. Перенаправить stdout в один файл и stderr в другой файл:

    command > out 2>error
    
  2. Перенаправить stderr в stdout ( &1 ), а затем перенаправить stdout в файл:

    command >out 2>&1
    
  3. Перенаправить оба файла:

    command &> out
    

Для получения дополнительной информации о различных операторах управления и перенаправления см. здесь .

    
ответ дан terdon 18.05.2015 в 14:50
источник

Ознакомьтесь с другими вопросами по меткам