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: 68.724 ]

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

Incrementando seus scripts com dialog

Criando uma calculadora com o Glade

Leitura recomendada

Expressões regulares no Bash : parte I

Redirecionamentos, Pipes e Fluxos

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

Recebendo seu IP dinâmico via email

  
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