Я знаю это очень много:
$ command 2>> error
$ command 1>> output
Есть ли способ вывести stderr в файл ошибок и вывести stdout в выходной файл в той же строке bash?
Просто добавьте их в одну строку command 2>> error 1>> output
Тем не менее, обратите внимание, что >>
это для добавления, если файл уже содержит данные. Принимая во внимание, что >
будет перезаписывать любые существующие данные в файле.
Итак, command 2> error 1> output
если вы не хотите добавлять.
Просто для завершения, вы можете написать 1>
так же, >
как и дескриптор файла по умолчанию является выходным. так 1>
и >
есть одно и то же.
Итак, command 2> error 1> output
становится,command 2> error > output
1>
можно написать как>
command &2>err.log
я думаю, я полностью сбиваю с толку синтаксис. (Ссылка на соответствующий ответ на все вопросы о bash может быть в порядке)command &2>err.log
не совсем законно - амперсанд в этом синтаксисе используется для файлового дескриптора в качестве цели, напримерcommand 1>&2
, перенаправляет stdout в stderr.Попробуй это:
Больше информации
Цифры
0
через9
являются файловыми дескрипторами в bash.0
обозначает стандартный ввод,1
обозначает стандартный вывод,2
обозначает стандартную ошибку.3
через9
запасные для любого другого временного использования.Любой файловый дескриптор может быть перенаправлен в файл или в другой файловый дескриптор с помощью оператора
>
. Вместо этого вы можете использовать оператор>>
для добавления в файл вместо создания пустого.Использование:
Пожалуйста, обратитесь к Расширенному руководству по Bash-Scripting: Глава 20. Перенаправление ввода / вывода .
источник
Как это:
источник
Или, если вы хотите смешать выходные данные (stdout & stderr) в одном файле, который вы можете использовать:
источник
Вывод нескольких команд может быть перенаправлен. Это работает для командной строки или наиболее полезно в bash-скрипте.
-s
Направляет запрос на ввод пароля на экране.Здесь блоки cmds stdout / stderr отправляются в отдельные файлы и ничего не отображать.
Здесь блоки cmds stdout / stderr отправляются в один файл и отображаются.
Здесь блоки cmds stdout / stderr отправляются в отдельные файлы и stdout для отображения.
В зависимости от того, кто вы (whoami) и имя пользователя, пароль может или не может потребоваться.
источник