RHCSA, RHCE, Linux, Ansible, AWS

Usar redirecionamento de entrada-saída (>, >>, |, 2>)

O linux tem 3 fluxos de dados básicos: Saída, Entrada e Erros. Esses fluxos de dados são conhecidos como Entrada Padrão (Standard Input). Saída Padrão(Standard Out) e Erro Padrão (Standard Error). Seus nomes são referidos de forma abreviada: stdin, stdout, stderr. 
Entrada padrão geralmente vem do teclado, enquanto a saída e erro padrões vão para os monitores. Por exemplo, usando o comando cat, pode-se imprimir na tela a saída e erro padrão. 
$cat meuarquivo
você pode redirecionar a saída e erro padrão no Linux. Esse conceito é fundamental e um importante mecanismo para se tornar um bom administrador linux. você pode redirecionar o fluxo de ou para um arquivo. Por exemplo, se tiver um grande arquivo que quevai redirecionar para um programa, pode usar:
$bancodedados < arquivogrande
No exemplo acima, redirecionamos o conteúdo do arquivo “arquivogrande” para o programa “bancodedados”. 
Entrada padrão também vem da esquerda de um comando. Por exemplo:
$cat meuarquivo | less
No exemplo acima, usamos o comando “cat” para imprimir o conteúdo do arquivo “meuarquivo” para a ferramenta do linux “less”, ao qual proporciona um filtro de leitura controlada para arquivos extensos. 
A barra vertical | se chama um “pipe”(tubo), que transmite a saída e erro padrão para o comando a direita do pipe. Ou seja, o comando é executado na esquerda, e a sua saída padrão é usada como entrada padrão para o comando a direita do pipe. Em linux, pode-se usar diversos pipes para fazer comandos extensos, e esse é um importante conceito a ser dominado. Veremos muitos exemplos com pipe no decorrer deste curso. 
Saída padrão também pode ser usado no linux em muitos casos. Por exemplo:
$ls > meusArquivos
No exemplo acima, usamos o comando “ls” para listar o conteúdo do diretório atual, e redirecionamos a saída padrão direto para o arquivo meusArquivos. Um conceito importante é saber que se usarmos o símbolo “>”, iremos criar um novo arquivo com o conteúdo da saída padrão. Caso usemos o símbolo “>>”, esse vai manter o conteúdo do arquivo, e adicionar a linha no final do arquivo existente. Caso este não exista, um novo arquivo será criado. 
atenção:
Se usar apenas “>”, todo o conteúdo do arquivo será apagado e substituído pela Saída padrão do comando usado. 
Para salvar apenas os error de um comando, use “2>”.
Por exemplo:
$programa 2> erros
No exemplo acima, será criado o arquivo “erros” apenas contendo fluxo de dados de erro padrão. Caso quevai descartar qualquer erro, use:
$programa 2> /dev/null
O dispositivo “null” é um dispositivo especial que descarta tudo que é escrito nele. Ele se encontra em /dev/null . 
Para enviar ambos fluxos de saída e erro para um arquivo, use:
$programa &> saida-e-erro
No exemplo acima, os fluxos de saída e erro serão escritos no arquivo “saida-e-erro”

Avatar de temweb

Sobre o autor

Deixe um comentário