Encaminhamentos em Linux

dmesg > local.log
Isto encaminha o conteúdo do buffer do kernel para o ficheiro local.log, em vez de aparecer no ecran do monitor. Mas se usares o símbolo do encaminhamento duas vezes seguidas, o output do comando acima seria adicionado ao conteúdo do ficheiro, no fim do mesmo, em vez de o substituir por completo:
dmesg >> local.log
Se usar o sinal "<" , o argumento será usado como input e é muito usado para o comando "grep". Por exemplo:

e irá procurar pela palavra USB no ficheiro local.log. Os reencaminhamentos existem porque todas as aplicações de Linux, sejam as mais pequenas como as maiores, tem 3 possíveis descritores de ficheiros (file descriptor) para trabalhar. São os standards input, standards output e o standard error. Nem damos por eles porque os standards input e output são o teclado e o écran do monitor. Nos exemplos anteriores, os standards foram endereçados usando os tais símbolos < e >. Mas como se endereça o ficheiro descritor do standard error? Isto é feito colocando o número "2" antes do símbolo! O número 2 vem da prioridade dado a cada ficheiro descritor e naturalmente o "0" é o standard input, o "1" é o standard output e o "2" é o standard error output. Isto é útil porque permite filtrar condições de erro geradas por um comando, enquanto continua a enviar o output para um ficheiro de log.
find / -name *.jpg 2> /dev/null
Usando o "find" como exemplo, os erros de acesso a permissões que resultam do "find" não ter direios de acesso, são reencaminhados para o buraco negro do device "null", enquanto que os resultados positivos terão o seu output no écran do monitor.
Fonte: Linux Format
0 comentários:
Enviar um comentário