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?