less '+' / caminho / para / arquivo

6

Então Gilles mencionado na sala de bate-papo que:

less '+>' /path/to/file

pode ser usado com less para exibir um arquivo ao contrário. Eu nunca vi isso antes.

Estou curioso - o que está acontecendo com o operador +> no título? Esta sintaxe é específica de less ? Pode ser usado de outra forma? Existem operadores similares que eu provavelmente deveria saber?

    
por mikeserv 07.04.2014 / 18:50

2 respostas

3

É less específico (você pode adivinhar isso com as aspas ao redor do operador para evitar que o shell interprete isso). O argumento + informa less para aplicar este comando após abrir o arquivo, neste caso > , que é o pressionamento de tecla para ir até o final do arquivo. Você pode tentar isso abrindo algum arquivo (longo) com less e pressionando > . +> é apenas um atalho para isso. Um caso de uso bem mais comum que você encontrará na natureza é chamar less +## /path/to/file , em que ## é um número de linha que você deseja exibir por less .

Pelo menos, +## também funciona para vi e emacs .

    
por 07.04.2014 / 19:02
4

Há muito tempo atrás, vários programas entenderam o argumento de linha de comando +N (por exemplo, +42 ) para significar “iniciar na linha N ” (não “pular N linhas ", mas" pule N -1 linhas ", porque a primeira linha é a linha 1). O traço mais antigo que posso encontrar está em tail em Unix V7 , mas não tenho certeza de que é onde o uso começou. Um programa importante com a mesma opção é mais . Outros programas que herdaram essa sintaxe de mais incluem menos , vi e a maioria dos outros editores de texto hoje.

Com o tempo, essa sintaxe foi progressivamente generalizada. Por 2.8BSD em 1980, mais também é suportado+/PATTERN para iniciar na primeira linha contendo o padrão especificado. Por 2.10BSD em 1985, vi suportado +COMMAND para executar um comando arbitrário na inicialização, generalizando +/PATTERN (nem todas as versões do vi suportam isso, e por exemplo POSIX especifica apenas -c COMMAND , mas é suportado por nvi, Elvis e Vim). Os comandos são ex comandos, ou seja, o que você pode digitar depois de : .

Menos também suporta o generalizado +COMMAND (não sei desde quando, mas foi no século 20). No caso de + , é como se você tivesse digitado os caracteres como entrada após menos partidas, exceto nos casos especiais +N , que é equivalente a +g e +/PATTERN , onde você pode omitir o final Retornar .

less '+>' /path/to/file é um exemplo desse uso: execute o comando > (vá para o final do arquivo) após a inicialização. Você também pode escrever less +G , pois G e > são sinônimos. Você pode combinar comandos, por exemplo, less $'+>?foo\r' /path/to/file para ir até a última ocorrência de foo .

Outra maneira de tornar menos comandos de execução na inicialização é colocá-los na variável de ambiente LESS : LESS='+>' less /path/to/file . Isso é útil se less for chamado por outro programa, como man (exemplo: Lendo e pesquisando longas páginas de manual ).

    
por 07.04.2014 / 21:56

Tags