Por que o log de saída, às vezes, fornece linhas parciais?

4

Às vezes, seguindo um log de saída que está sendo constantemente atualizado não dá as linhas inteiras. Por que isso?

grep pattern input_file > output.log &
tail output.log

Por que não imprime a última linha na íntegra?

    
por Gilles 14.03.2012 / 18:06

1 resposta

7

Ler e gravar um arquivo não é atômico à linha e tail -f não é armazenado em linha. Portanto, quando tail -f lê o arquivo enquanto ainda está sendo gravado, ele pode chegar ao final do arquivo (e, portanto, parar de imprimir) antes que o processo de gravação no arquivo grave o final da linha. Quando isso acontece, imprime uma linha incompleta porque é tudo o que vê.

    
por 14.03.2012 / 18:13

Tags