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 ).