Entrada e Saída
Existe uma entrada padrão e uma saída padrão.
Entrada padrão:
A maioria dos comandos Unix permite que você informe a entrada de dados, geralmente informando o nome de um arquivo que contém os dados a serem processados pelo comando, mas caso esta entrada seja omitida, o programa utiliza automaticamente a entrada padrão para receber os dados a serem processados pelo comando, normalmente a entrada padrão é o teclado do terminal.
Saída padrão:
Por default a saída dos dados processados pelo comando são para a saída padrão que é o monitor do terminal que você está usando, mas você também pode usar esta saída para ciar ou adicionar dados a um arquivo ou simplesmente usa-la como entrada para outro comando qualquer.
Redirecionamento:
No sistema Unix é possível o redirecionamento da entrada padrão, da saída padrão, e ainda possibilitar que a saída de um comando seja a entrada e outro, todos estes recursos são acessados através de símbolos, são eles o de direcionamento de saída para um arquivo >, o de redirecionamento de um arquivo como entrada <, e o símbolo que direciona a saída de um programa para a entrada de outro |.
Redirecionamento de saída:
Para redirecionar a saída de um comando para um arquivo, você deve inserir o símbolo > depois de todos os parâmetros do comando, e por último por o nome do arquivo que irá receber os dados processados, por exemplo:
%ls -lap > meu.diretorio
Esta linha de comando criará o arquivo "meu.diretorio" com o conteúdo da saída do comando "ls -lap", caso o arquivo "meu.diretorio" já existisse no diretório corrente o mesmo seria sobrescrito, para que isto não ocorra, ou seja para que os dados sejam acrescentados no arquivo, ao invés de usar ">" use ">>", assim os dados serão inseridos no fim do arquivo já existente sem sobreescrever o seu conteúdo.
Redirecionamento de entrada:
Para redirecionar a entrada que deveria ser feita através do teclado para um arquivo que já contenha os dados da entrada você deve usar o símbolo "<" depois de todos os parâmetros do comando, e por último por o nome do arquivo que contém os dados a serem processados, por exemplo:
%grep -e teste < meu.diretorio
Esta linha executará o comando grep como se você tivesse digitado todo o conteúdo do arquivo "meu.diretorio" como um texto para ser processado pelo comando.
Redirecionamento da saída para a entrada (pipeline):
Para redirecionar a saída padrão de um comando para a entrada padrão de outro você deve usar o símbolo "|" para separar um comando do outro, este símbolo segue a mesma sintaxe do encadeamento de comandos, com a diferença que a saída do comando é usada como entrada do próximo comando encadeado,
o último comando colocará sua saída na saída padrão. Por exemplo:
%ls -lap | sort | grep -e teste | wc -l
Esta linha de comando usará a saída do comando ls como entrada do comando sort que direcionará a saída para o comando grep, e este irá direcionar sua saída para o comando wc, que por sua vez irá apresentar sua saída na tela.