Esta seção explica o funcionamento dos recursos de direcionamento de entrada e
saída do sistema GNU/Linux
.
Redireciona a saída de um programa/comando/script para algum dispositivo ou arquivo ao invés do dispositivo de saída padrão (tela). Quando é usado com arquivos, este redirecionamento cria ou substitui o conteúdo do arquivo.
Por exemplo, você pode usar o comando ls
para listar arquivos e
usar ls >listagem para enviar a saída do comando para o arquivo
listagem
. Use o comando cat
para visualizar o
conteúdo do arquivo listagem
.
O mesmo comando pode ser redirecionado para o segundo console
/dev/tty2
usando: ls >/dev/tty2, o resultado do
comando ls
será mostrado no segundo console (pressione
ALT e F2 para mudar para o segundo console e
ALT e F1 para retornar ao primeiro).
Redireciona a saída de um programa/comando/script para algum dispositivo ou final de arquivo ao invés do dispositivo de saída padrão (tela). A diferença entre este redirecionamento duplo e o simples, é se caso for usado com arquivos, adiciona a saída do comando ao final do arquivo existente ao invés de substituir seu conteúdo. .
Por exemplo, você pode acrescentar a saída do comando ls
ao
arquivo listagem
do capítulo anterior usando ls /
>>listagem. Use o comando cat
para visualizar o
conteúdo do arquivo listagem
.
O mesmo comando pode ser redirecionado para o segundo console
/dev/tty2
usando: ls >/dev/tty2, o resultado do
comando ls
será mostrado no segundo console (pressione
ALT e F2 para mudar para o segundo console e
ALT e F1 para retornar ao primeiro).
Direciona a entrada padrão de arquivo/dispositivo para um comando. Este comando faz o contrário do anterior, ele envia dados ao comando.
Você pode usar o comando cat <teste.txt para enviar o conteúdo
do arquivo teste.txt
ao comando cat
que mostrará seu
conteúdo (é claro que o mesmo resultado pode ser obtido com cat
teste.txt mas este exemplo serviu para mostrar a funcionalidade do
<).
Envia a saída de um comando para a entrada do próximo comando para continuidade do processamento. Os dados enviados são processados pelo próximo comando que mostrará o resultado do processamento.
Por exemplo: ls -la|more, este comando faz a listagem longa de
arquivos que é enviado ao comando more
(que tem a função de
efetuar uma pausa a cada 25 linhas do arquivo).
Outro exemplo é o comando "locate find|grep bin/", neste
comando todos os caminhos/arquivos que contém find na listagem serão
mostrados (inclusive man pages, bibliotecas, etc.), então enviamos a saída
deste comando para grep bin/ para mostrar somente os diretórios
que contém binários. Mesmo assim a listagem ocupe mais de uma tela, podemos
acrescentar o more
: locate find|grep bin/|more.
Podem ser usados mais de um comando de redirecionamento (<, >, |) em um mesmo comando.
A principal diferença entre o "|" e o ">", é que o Pipe envolve processamento entre comandos, ou seja, a saída de um comando é enviado a entrada do próximo e o ">" redireciona a saída de um comando para um arquivo/dispositivo.
Você pode notar pelo exemplo acima (ls -la|more) que ambos ls e more são comandos porque estão separados por um "|"! Se um deles não existir ou estiver digitado incorretamente, será mostrada uma mensagem de erro.
Um resultado diferente seria obtido usando um ">" no
lugar do "|"; A saída do comando ls -la
seria gravada em um arquivo chamado more
.
Envia o resultado do programa para a saída padrão (tela) e para um arquivo ao mesmo tempo. Este comando deve ser usado com o pipe "|".
comando|tee [arquivo]
Exemplo: ls -la|tee listagem.txt, a saída do comando será mostrada
normalmente na tela e ao mesmo tempo gravada no arquivo
listagem.txt
.
Guia Foca GNU/Linux
Versão 5.20 - Sunday, 03 de November de 2002gleydson@cipsga.org.br