Reabra um arquivo truncado enquanto segue um arquivo com menos

3

Às vezes, estou executando um less +F em um arquivo de log, que eu trunco. Eu gostaria que less percebesse que o arquivo foi truncado e comece a seguir o arquivo como está agora. Atualmente, sou forçado a fazer o seguinte:

  1. (terminal 1) > %código%
  2. (terminal 2) > %código%
  3. (terminal 1) > sair menos
  4. (terminal 1) > reinicie menos: less +F my-file.txt

E eu tenho que fazer os passos 3-4 toda vez que truncar o arquivo (o que é dezenas o vezes por dia). Isso é realmente uma dor.

Eu gostaria de fazer:

  1. (terminal 1) > printf "" > my-file.txt (e qualquer outra opção extra é necessária)
  2. (terminal 2) > %código%

E é isso. less +F my-file.txt estaria automaticamente ciente de que o arquivo foi truncado e começará a seguir o novo arquivo desde o início.

Isso é possível? Que bandeira devo usar por menos para conseguir isso?

    
por dangonfast 02.05.2013 / 11:25

3 respostas

1

Não é exatamente a resposta que você estava procurando, mas você poderia tentar usar ' tail -F ' (em oposição a ' tail -f ') que lhe dará exatamente o comportamento que você está procurando.

    
por 02.05.2013 / 13:09
0

Por que você não os combina assim?

tail -F filename | tee | less

Isso funciona bem para mim.

    
por 02.05.2013 / 17:31
0

Você deseja especificar o argumento --follow-name para less . De a página do manual :

Normally, if the input file is renamed while an F command is executing, less will continue to display the contents of the original file despite its name change. If --follow-name is specified, during an F command less will periodically attempt to reopen the file by name. If the reopen succeeds and the file is a different file from the original (which means that a new file has been created with the same name as the original (now renamed) file), less will display the contents of that new file.

Então, seus passos agora seriam:

  1. (terminal 1) > %código%
  2. (terminal 2) > %código%
  3. (terminal 1) > aproveite!

P.S. Em vez de usar printf, muitos shells truncarão apenas com o operador de redirecionamento: less --follow-name +F my-file.txt

    
por 02.05.2013 / 17:43