Input-Output redirection (>, >>, |, 2>, etc.):
Num terminal existem diferentes formas de redirecionarmos o Input\Output\Erro de diferentes comandos podendo conjuga-los. Abaixo segue a representação numérica de cada fluxo de dados existente num sistema:
# /dev/stdin -> 0
# /dev/stdout -> 1
# /dev/stderr -> 2
Podemos redirecionar o Input de um determinado [Comando_2] usando a seguinte estrutura (note-se que o [Comando_2], pode ser o output de um comando ou apenas um string):
# [Comando_1] < [Comando_2]
Para redirecionarmos o Standard Output do [Comando_1]usamos a seguinte estrutura:
# [Comando_1] > [Comando_2]
ou
# [Comando_1] 1> [Comando_2
Para redirecionarmos o Standard Error do [Comando_1] usamos a seguinte estrutura:
# [Comando_1] 2> [Comando_2]
O código acima se for executado mais do que uma vez para o mesmo destino irá escrever por cima do mesmo. Caso queiramos apenas adicionar ao que já la esteja, por exemplo, ao fim de um determinado documento, usamos:
# [Comando_1] >> [Comando_2]
Caso se pretenda redirecionar o Standard Output e o Standard Error, podemos usar a seguinte sintaxe:
# [Codigo_1] &> [Codigo_2]
Para esta funcionalidade podemos usar qualquer um dos métodos indicados acima contudo o preferencial é o ultimo, isto apenas por questões de compatibilidade entre interpretadores diferentes.
Finalmente caso se pretende apenas dar seguimento a uma sequencia de comandos, passando o output de um [Comando_1] para ser trabalhado e alterado pelo [Comando_2], usamos o “|”(pipe):
# [Codigo_1] | [Codigo_2]
Um exemplo real da sintaxe acima é por exemplo quando queremos fazer grep ao Output de um determinado comando, por exemplo espaço de disco ( df ) para sabermos o espaço disponível em determinadas partições apenas:
# df -h | grep -E "/home|root"
/dev/mapper/centos_localhost--live-root 49G 12G 36G 25% /
/dev/mapper/centos_localhost--live-home 858G 81G 735G 10% /home
Last updated
Was this helpful?