Eu sei disso:
$ command 2>> error
$ command 1>> output
Existe alguma maneira de eu enviar o stderr para o arquivo de erro e o stdout para o arquivo de saída na mesma linha do bash?
Basta adicioná-los em uma linha command 2>> error 1>> output
No entanto, observe que >>
é para anexar se o arquivo já tiver dados. Visto que, >
substituirá todos os dados existentes no arquivo.
Então, command 2> error 1> output
se você não deseja anexar.
Apenas para concluir, você pode escrever 1>
como apenas >
uma vez que o descritor de arquivo padrão é a saída. assim 1>
e >
é a mesma coisa.
Então, command 2> error 1> output
torna-se,command 2> error > output
1>
pode ser escrita como>
command &2>err.log
, acho que estou com sintaxias totalmente confusas. (Um link para uma resposta adequada de todos os festança tubulação-ismos poderia estar em ordem)command &2>err.log
não é muito legítimo - o e comercial nessa sintaxe é usado para o descritor de arquivo como destino, por exemplocommand 1>&2
, redirecionaria o stdout para o stderr.Tente o seguinte:
Mais Informações
Os números
0
através9
são descritores de arquivo no bash.0
significa entrada padrão,1
significa saída padrão,2
significa erro padrão.3
através9
são de reposição para qualquer outro uso temporário.Qualquer descritor de arquivo pode ser redirecionado para um arquivo ou para outro descritor de arquivo usando o operador
>
. Em vez disso, você pode usar o operador>>
para anexar a um arquivo em vez de criar um vazio.Uso:
Por favor, consulte Bash-Scripting Guia Avançado: Capítulo 20. I / O redirecionamento .
fonte
Curtiu isso:
fonte
Ou se você gosta de misturar saídas (stdout e stderr) em um único arquivo, pode usar:
fonte
A saída de vários comandos pode ser redirecionada. Isso funciona para a linha de comando ou de maneira mais útil em um script bash. O
-s
direciona o prompt de senha para a tela.Os cmds hereblock stdout / stderr são enviados para arquivos separados e nada para exibir.
Os cmds de herança stdout / stderr são enviados para um único arquivo e exibidos.
Os cmds hereblock stdout / stderr são enviados para arquivos separados e stdout para exibição.
Dependendo de quem você é (whoami) e do nome de usuário, uma senha pode ou não ser necessária.
fonte