Você pode combinar -F com -X , o que desativa a sequência de inicialização do terminfo.
export LESS=-FX
Isso tem a (des) vantagem de que less não limpa o texto exibido na saída, não importa quanto tempo o arquivo esteja.
Na minha máquina Debian aqui, less sempre abre a tela alternativa para mostrar coisas.
Isso é irritante, se houver apenas 2 ou 3 linhas a serem exibidas. Gostaria de less para:
funciona como pager, se houver mais de uma tela cheia de informações
e trabalhe como cat , se não houver.
Aparentemente, less tem o sinalizador -F para casos de "tela única":
-F or --quit-if-one-screen
Causes less to automatically exit if the entire file can be displayed on the first screen.
Mas no meu caso, apenas sai novamente e nenhuma informação é exibida. É mais parecido com cat /dev/null e, portanto, não é realmente útil.
Alguém tem uma ideia de como alcançar esse comportamento less ?
Você pode criar um pequeno script de wrapper, assim:
#!/bin/bash
if (( $(wc -l < "$1") < ${LINES:-20} ))
then
cat "$1"
else
less "$1"
fi
Se você criar em /usr/local/bin ou ~/bin como um arquivo chamado algo como less2 (convém usar um nome muito curto como l para facilitar a digitação) e verifique se ele é executável com chmod a+x /usr/local/bin/less2 , você pode usá-lo no lugar de less para comandos no formato less filename , ou seja, less2 filename (ou l filename ).
Isso não funcionará se você enviar a saída de outro comando por meio de less ,
ou se você especificar opção (s) ou vários nomes de arquivos.
Sem dúvida, será possível fazer a mesma coisa sem o arquivo de script extra, definindo uma função alias , se preferir.
Como mencionado por grawity , você pode passar -F -X para conseguir isso, mas isso significa que less deixará muito texto na sua rolagem de terminal (e pode até não estar em ordem, se você pular o texto em less ). less não produz nada quando você apenas passa -F é o problema conhecido # 303 .
Em vez disso, você pode usar um script de wrapper. Para entradas lentas, como git log -Gregex , você quer:
A) Linhas a aparecer no ecrã principal à medida que entram e, em seguida, mudar para o ecrã alternativo, uma vez que é necessário efectuar a rolagem (para que o primeiro $LINES da saída apareça sempre no seu deslocamento); se assim for, vá com o segundo de as respostas de Gilles a uma pergunta semelhante .
B) linhas para aparecer na tela alternativa, mas saia da tela alternativa e imprima as linhas na tela principal se a rolagem for desnecessária (assim nenhuma saída aparecerá na sua rolagem se a rolagem for necessária); em caso afirmativo, consulte minha resposta a uma pergunta semelhante .