Operadores de redirecionamento

ice

Operadores de redirecionamento são fundamentos essenciais no mundo *NIX, tanto que quase todo shell script mais avançado usa e abusa desse recurso. Para descobrir o que cada um dos operadores faz, você pode dar uma olhadinha neste artigo.

[ Hits: 69.769 ]

Por: Iuri Cernov em 18/11/2004


Os operadores > e >>



Os operadores > e >> são usados para redirecionar a saída de um programa para um arquivo. A sintaxe é muito simples que dá pena:
  • comando > arquivo
  • comando >> arquivo

O operador >


O operador > é usado para sobrescrever um arquivo com a saída do comando. Por exemplo:

$ ls > arqs

A saída não será nenhuma se tudo ocorreu bem. Agora ao dar "ls" normalmente você verá um arquivo a mais que é o 'arqs'. Tente dar um cat:

$ cat arqs
(saída do cmd 'ls')

Você pode usar o comando echo para escrever mensagens personalizadas. Veja como:

$ echo "É só um teste" > arqs
$ cat arqs

É só um teste

Algumas características:
  • O arquivo será sobrescrito! Cuidado para não fazer nenhuma m...
  • Caso não se tenha permissão para escrever no arquivo, vai dar erro (o que tu esperava?).
  • Caso o arquivo não exista, ele será criado.

O operador >>


Seria a mesma coisa que o >, mas com uma diferença: ele não sobrescreve o arquivo. Neste caso você poderá escrever mais. Dê uma olhada:

$ rm teste
-> É bom, caso o arquivo exista poderá nos atrapalhar um pouco

$ echo "Os arquivos são:" >> teste
$ ls ~ >> teste
$ echo "Fim dos arquivos:" >> teste
$ cat teste

Os arquivos são:
(os arquivos do diretório $HOME)
Fim dos arquivos:

Tente fazer com o operador > e compare o resultado. Você consegue explicar porque?

As características são a mesmas, com a diferença que o arquivo não será sobrescrito.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Os operadores > e >>
   3. O operador <
   4. O operador 2>
   5. O pipe
Outros artigos deste autor

Criando uma calculadora com o Glade

Incrementando seus scripts com dialog

Leitura recomendada

Recebendo seu IP dinâmico via email

Definição automática de wallpaper em função do horário

Utilizando "expr" para "String Matching" através de expressões regulares em shell

Expressões regulares no Bash : parte I

Redirecionamentos, Pipes e Fluxos

  
Comentários
[1] Comentário enviado por removido em 18/11/2004 - 02:34h

Muito bom artigo, Iuri. Queria saber se vc ou alguém conhece e pode indicar algum livro sobre esse assunto (Shell Script). Ok?
[]s!

Wesley Caiapó

[2] Comentário enviado por danillofa em 18/11/2004 - 08:16h

Cara acho que em qualquer lugar que vc perguntar sobre um bom livro de shell irao te indicar o do Julio Neves
Programação Shell Linux 4a. edição
http://www.brasport.com.br/livro.asp?Cod=85-7452-164-7

flws
t+

Danillo

[3] Comentário enviado por pop_lamen em 18/11/2004 - 14:48h

Bom o artigo, mas faltou muita coisa....
Por exemplo faltou cobrir o redirecionamento de fluxo para devices,
exemplo:
echo fuck > /dev/null
dentre outors.
Mas mesmo assim ta valendo, t+!

[4] Comentário enviado por jllucca em 19/11/2004 - 13:31h

Olá,

cara o artigo ta excelente. Só discordo do "2>" ser um operador. No mundo *nux, nós temos normalmente três arquivos abertos(não tenho certeza da ordem stdin e stdout): 0(stdin), 1(stdout), 2(stderr). Assim, quando fazemos "2>algo" estamos fazendo o dispositivo "/dev/stderr" enviar suas mensagens para algo. Essa parte teria sido uma ótima ancora pra voce falar de redirecionamento para dispositivos como o pop_lamen já comentou. Assim, voce, ao inves de stderr, poderia usar:

fprintf(2, "Erro ao abrir %s\n", fl); // em C

[]'s

[5] Comentário enviado por mailws em 21/11/2005 - 04:46h

Não entendi direito esse PIPE

[6] Comentário enviado por rmllo em 29/05/2011 - 13:06h

Parabéns pelo artigo foi de grande ajuda.
Valeu.

[7] Comentário enviado por Stuani255 em 27/05/2016 - 11:30h

Alguem pode dar um exemplo usando redirecionamento criando um arquivo txt? Estou começando agora a aprender shell script e pra mim esses comandos são meio vagos.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts