Eu gosto do comando watch
, mas ele possui suas limitações .
Estou curioso para saber se eu poderia imitar a funcionalidade de watch
com less
. Estou procurando principalmente a capacidade de rolar pelo meu diretório, pois ele é modificado dinamicamente por meio de um script em execução.
Em less
, você pode digitar F
para continuar lendo no final de um arquivo (como tail -f
); Você pode digitar :e
e um nome de arquivo para exibir um arquivo diferente, mas, infelizmente, se você digitar o nome do arquivo atual, less
não recarregará o arquivo. No entanto, há um truque para fazê-lo reler o arquivo atual, sugerido por sabgenton : type :e
e insira o nome de um arquivo inexistente ; isso faz com que menos exiba uma mensagem de erro e recarregue o arquivo atual.
Se você está procurando uma alternativa para watch ls
, aqui estão alguns:
auto-revert-mode
, recarregará o arquivo ou diretório a cada 5 segundos (o atraso é configurável).R
para recarregar o URL (local).Shift+F tornará less
semelhante a tailf
. Ou seja, ele é atualizado se mais dados forem anexados ao arquivo.
Basta digitar:
less +F filename
Isso emula pressionando "F" dentro do editor.
man
páginas podem ser muito informativas. Não se deixe intimidar por eles. Entre todo o resto, man less
diz que você pode usar o comando R
para:
R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed.
(Sei que essa pergunta tem mais de 6 anos, mas aparece nas pesquisas do Google, por isso não sou a única que clicou no link para chegar até aqui.)
A tecla "F" ao executar less
fará um "follow" semelhante a tail -f
, mas não tenho certeza se isso conseguirá o que você está procurando aqui.
Eu normalmente digito G para ajustar a saída de uma só vez. Acho especialmente útil em um sistema de arquivos de rede como o CIFS.
R
para repintar nem sempre recarrega o arquivo.[1]
Uma solução alternativa que sempre recarrega o arquivo é pressionar hq
, que abrirá a página de Ajuda e sairá. Ele tem um efeito colateral de forçar o arquivo a recarregar.
[1] Aqui estão alguns exemplos de situações que R
fazem e não recarregam:
>
e >>
alterações: são recarregadassed -i
, gEdit, TextEdit: NÃO seja recarregadovi
muda: É recarregadovi
muda: NÃO seja recarregadoAcredito que a diferença se resume a se o inode é alterado (você pode verificar com ls -i foo.txt
). Se o inode mudar, R
não funcionará.
Você pode usar o vim para ler o arquivo e adicionar o seguinte mapeamento ao seu .vimrc
e você pode recarregar facilmente um arquivo com ,r:
let mapleader = ","
nnoremap <leader>r :edit <CR>
Observe que se você já editou o arquivo, o vim irá reclamar. Apenas mude para
let mapleader = ","
nnoremap <leader>r :edit! <CR>
Ignorar alterações.
Você pode canalizar para tail -f
em vez disso, resultaria em você seguindo a saída. Você estaria perdendo a capacidade de mover (rolar) através de sua saída.
Acabei de encontrar esta discussão como qualquer outra pessoa. Gostaria de adicionar a solução de quando você já está no final do arquivo, usar 'g' seguido de 'G' forçará uma atualização do arquivo.
Acabei criando um botão macro para isso no meu programa de terminal (SecureCRT). A macro é simplesmente 'gG'.
Se você não tem aversão ao uso de um navegador, pode iniciar o servidor da web Algernon com este comando:
algernon -a -t /directory/name
Uma lista de arquivos será exibida e atualizada automaticamente em http: // localhost: 3000 /