Como configurar menos para ler dados não exibidos em um buffer?

4

Recentemente, descobri que você pode iniciar e pesquisar imediatamente pesquisas de código-fonte de longa execução canalizadas para menos:

grep -r something | less &

existe uma maneira de direcionar less para ler mais da saída na memória do que está exibindo atualmente "em segundo plano", de modo que, quando decido ver os resultados da minha pesquisa, não preciso esperar.

    
por Gregory Nisbet 31.08.2017 / 21:52

1 resposta

4

Por padrão, se você enviar comandos, o shell bash usará a chamada pipe (3) libc tecer os descritores de arquivo das tarefas filhas. Seu tamanho de buffer interno padrão é de apenas 64 K.

No entanto, existe uma ferramenta

buffer

para a tarefa, incluída na maioria das distros. Por padrão, ele usa 1MB de buffer, mas você pode aumentá-lo para qualquer tamanho. Por exemplo

grep ..anything, anywhere.. | buffer -m $[1<<30] | less &

será bastante provável. :-) Ele tem muitos outros recursos interessantes (por exemplo, ele pode funcionar como um dd , ou pode imprimir hashes para o stderr depois de n-bytes), é um ... killer app . : -)

    
por 31.08.2017 / 21:59