Redirecionando eventos de comando

Cada comando pode usar três canais, seja para entrada ou para saída:

Para redirecionar os canais, as possibilidades são as seguintes:

Comando > Arquivo

Grava a saída do comando em um arquivo, apagando um arquivo existente. Por exemplo, o comando ls grava sua saída no arquivo listing.txt:

ls > listing.txt
Comando >> Arquivo

Anexa a saída do comando a um arquivo. Por exemplo, o comando ls anexa sua saída ao arquivo listing.txt:

ls >> listing.txt
Comando < Arquivo

Lê o arquivo como entrada do comando em questão. Por exemplo, o comando read extrai o conteúdo do arquivo para a variável:

read a < foo
Comando1 | Comando2

Redireciona a saída do comando à esquerda como entrada para o comando à direita. Por exemplo, o comando cat gera a saída do conteúdo do arquivo /proc/cpuinfo. Essa saída é usada por grep para filtrar apenas as linhas que contêm cpu:

cat /proc/cpuinfo | grep cpu

Cada canal possui um descritor de arquivo: 0 (zero) para entrada padrão, 1 para saída padrão e 2 para erro padrão. É permitido inserir esse descritor de arquivo antes de um caractere < ou >. Por exemplo, a linha a seguir procura por um arquivo que começa com foo, mas suprime seus erros redirecionando-o para /dev/null:

find / -name "foo*" 2>/dev/null