Redirecionando as massas

Ainda que você seja um iniciante no Linux, provavelmente você já usouo alguma forma de redirecionamento pela linha de comando. Redirecionamentos usam > e < para passar dados entre comandos que você está executando. É mais usando para redirecionar uma saída de um comando para um arquivo. Por exemplo, se você digita dmesg >local.log o conteúdo do buffer do kernel(a saída do comando dmesg) será redirecionado para o arquivo local.log ao invés de aparecer na tela. Se você usar dois > a saída do comando dmesg será concatenada no final do arquivo ao invés de sobrescrevê-lo. Usa-se o < como argumento de entrada ao invés de destinação – mais comumente usando com grep. Ao digitar grep -i USB < local.log buscará por 'USB' no arquivo local.log por exemplo.

Redirecionamentos funcionam porque muitas aplicações Linux, grandes ou pequenas, têm três 'descrições de arquivo' possíveis para trabalhar com entrada e saída. São as entradas padrão, a saída padrão e o erro padrão. Normalmente você não percebe, pois os dispositivos usados para entrada e saída padrão são o teclado e o tela. Nos exemplos anteriores, estamos endereçando o descritor de saída e entrada usando < e >. Mas como você endereça o descritor de arquivo do erro padrão? Isto é feito com o número '2' antes de > - o 2 vem da prioridade dada para cada descritor de arquivo. Naturalmente, 0 é a entrada padrão, 1 é a saída padrão e 2 é a saída padrão de erro. É muito útil porque permite que você filtre condições de erro geradas por um comando, enquanto a saída continua sendo enviada para um arquivo de log.

Um exemplo útil. Os erros de permissão que resultam do comando find quando este não tem privilégios de acesso são enviadaos para o buraco negro do disposivito null enquanto os resultados de sucesso são enviados para a tela:

find / -name *.jpg 2>/dev/null

Mais em Truques de linha de comando.

Deixe uma resposta