Eu gosto do watch
comando, mas tem suas limitações .
Estou curioso para saber se eu poderia imitar a funcionalidade de watch
with less
. Estou procurando principalmente a capacidade de rolar pelo meu diretório, pois ele é modificado dinamicamente por meio de um script em execução.
tail -f foo.log | grep bar
e poder alterar dinamicamente o comando grep reiniciando o pipeline tail / grep.Respostas:
Em
less
, você pode digitarF
para continuar lendo no final de um arquivo (comotail -f
); você pode digitar:e
e um nome de arquivo para visualizar um arquivo diferente, mas, infelizmente, se você digitar o nome do arquivo atual,less
não o recarregará. No entanto, há um truque para fazê-lo reler o arquivo atual, sugerido por sabgenton : digite:e
e digite 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
ele recarregará o arquivo ou diretório a cada 5 segundos (o atraso é configurável).R
para recarregar o URL (local).fonte
less +F
apenas observa o conteúdo anexado. Use:e nonexistentfile
para reler a entrada completamente alterada.R
não atualiza o arquivo de maneira confiável. Ele atualiza a tela e limpa alguns buffers de entrada, mas na verdade não recarrega os dados do arquivo em todas as circunstâncias (apenas se o arquivo for grande? Eu não procurei profundamente no código).Shift+Ffará
less
semelhante atailf
. Ou seja, ele é atualizado se mais dados forem anexados ao arquivo.fonte
less
não mostrarão essas alterações.$COMMAND | less
. Gostaria de saber se existe uma boa maneira de contornar isso? Você pode fazer coisas assim,$COMMAND > /tmp/file & less /tmp/file
mas isso não é muito legal.Basta digitar:
Isso emula pressionando "F" dentro do editor.
fonte
alias check="less +F"
ao meu.bashrc
.man
páginas podem ser muito informativas. Não se deixe intimidar por eles. Entre tudo,man less
diz que você pode usar oR
comando para:(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.)
fonte
less
não reabri o arquivo usando seu nome de arquivo - ou seja, quando o inode do arquivo foi alterado (como sobrescrevendo o arquivo usandomv
), o conteúdo do arquivo antigo permaneceu (provavelmente o inode antigo foi relido) - - 2. A primeira linha exibida provavelmente começa no mesmo deslocamento de bytes que no conteúdo original do arquivo. Portanto, quando os comprimentos das linhas mudam, a primeira linha exibida pode ficar incompleta e as linhas exibidas podem se mover para cima / baixo.R
nem sempre funciona. Veja unix.stackexchange.com/questions/4351/…A tecla "F" ao executar
less
fará um "follow" semelhante atail -f
, mas não tenho certeza se isso alcançará o que você está procurando aqui.fonte
Normalmente, apenas digito Gpara ajustar a saída de uma só vez. Acho especialmente útil em um sistema de arquivos de rede como o CIFS.
fonte
man less
: 'G ou> ou ESC-> Vá para a linha N no arquivo, o padrão é o final do arquivo.' Excluo meus velhos comentários errados aqui, desculpe-os.less
, Mark Nudelman, respondeu o seguinte: "Normalmente, o comando G não força uma releitura do arquivo como o comando R. Pode parecer que isso acontece se o final do arquivo ainda não tiver sido lido quando G é chamado, para que o salto para o final do arquivo precise ler os dados lá pela primeira vez.Por exemplo, se você pular para o final com G, depois voltar para o início com 1G, outro programa modifica os dados em o final do arquivo (sem alterar o comprimento) ", (continuação)Você pode usar o vim para ler o arquivo e, em seguida, adicionar o seguinte mapeamento ao seu
.vimrc
arquivo e pode recarregar facilmente um arquivo com ,r:Observe que se você já editou o arquivo, o vim irá reclamar. Apenas mude para
Ignorar mudanças.
fonte
vim
de suas mãos frias e mortas. O contexto da pergunta é sobreless
, mas como alguém com tendências monomaníacas , eu simpatizo!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
recarregam e não recarregam:>
e>>
alterações: seja recarregadosed -i
, gEdit, TextEdit: NÃO seja recarregadovi
alterações: são recarregadasvi
alterações: NÃO são recarregadasEu acredito que a diferença se resume a saber se o inode muda (você pode verificar com
ls -i foo.txt
). Se o inode mudar,R
não funcionará.fonte
Você poderia canalizá-lo para
tail -f
isso, resultaria em você seguindo a saída. Você estaria perdendo a capacidade de mover (rolar) através de sua saída.fonte
Se você não tem aversão ao uso de um navegador, pode iniciar o servidor da Web Algernon com este comando:
Uma lista de arquivos será exibida e atualizada automaticamente em http: // localhost: 3000 /
fonte
less
Acabei de encontrar este tópico 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'.
fonte