Não é menos apenas mais?

45

Quando eu faço more filenamee less filename, parece que os terminais resultantes são bastante semelhantes. Posso navegar e pesquisar através de meus arquivos de forma idêntica ( j, Space, /pattern, etc.).

Acho difícil acreditar que lessseja moree vice-versa. Existem diferenças entre os dois?

Zaid
fonte
36
lessé mais que more, mais ou menos, moreé menor que less. ;-)
Alan Haggai Alavi
3
@AlanHaggaiAlavi - Isso é um trava-língua que você tem lá: D
Kent Pawar
3
@AlanHaggaiAlavi Essa deve ser uma resposta. :)
Tripp Kinetics
Isso depende do que o Unix está sendo usado. Em alguns, lesse moresão os mesmos executáveis, enquanto em outros são diferentes.
Kusalananda

Respostas:

52

A diferença é principalmente histórica neste momento, acredito que alguns sistemas ainda têm moree lessvincularam o mesmo binário.

Originalmente, morepraticamente só permitia avançar em um arquivo, mas era bastante decente para armazenar em buffer a saída.

lessfoi escrito como um aprimorado moreque lhe permitia rolar o texto exibido

A primeira linha do meu man lessresume bastante:

Less is a program similar to more, but which allows backward 
movement in the file as well as forward movement. 
user455
fonte
@ jkerian: Pesquisa de texto e buffer à parte, você poderia mostrar um exemplo prático de onde esses dois diferem em termos de implementação de comandos?
Zaid
14
Não vejo que seja histórico. Nunca vi um 'mais' que permitisse que você se movesse nas duas direções. você só pode avançar em mais. o ponto histórico seria que mais foi escrito antes de menos, significando 'ver mais de 1 página' e o nome do comando less é mais uma piada sobre menos é mais e mais é menos, basicamente dizendo que menos poderia fazer mais coisas.
Xenoterracide
1
Eu tenho um sistema Solaris 10 aqui, que moreage como o antiquado more- você não pode voltar uma página. E é o PAGER padrão. Me deixa louca ...
Stefan Lasiewski
1
Então, em outras palavras, são os sistemas baseados no FreeBSD (talvez todos os BSD?) ... já que o OS X é baseado no FreeBSD ... O shell padrão do @Stefan Solaris sem conclusão de guia (ativado?) Me deixou louco.
Xenoterracide
7
Mais ou menos a resposta correta.
Invert
25

lessé muito mais do que more, por exemplo, você tem muito mais funcionalidade:

g: vá para o topo do arquivo
G: vá para o final do arquivo
/: pesquisa para a frente
?: pesquisa para trás
N: mostra o número da linha
: linha goto
F: semelhante ao tail -f, pare com ctrl + c
S: linhas de divisão

E eu não lembro mais ;-)

Bauna
fonte
3
h: tudo o que você não se lembra;)
törzsmókus
9

Além dos recursos extras já mencionados less, ele também possui um vcomando que abre o arquivo atual na vimesma posição. Ao sair vi, você voltará lesscom o arquivo (possivelmente atualizado) mostrado.

dr-jan
fonte
1
Quando moreé interativo também pode começar vipressionando v.
Troubadour
4

Há algumas coisas em que faço o tempo todo less, que não funcionam more(pelo menos as versões nos sistemas que uso. Uma delas é usada Gpara ir até o final do arquivo e gpara o início. Isso é útil para arquivos de log, quando você procura entradas recentes no final do arquivo.O outro é a pesquisa, onde lessdestaca a correspondência, enquanto moreapenas o leva à seção do arquivo em que a correspondência ocorre, mas não indicar onde está.

KeithB
fonte
3

Menos tem muito mais funcionalidade.

Você pode usar vpara pular para o $ EDITOR atual. Você pode converter para o modo tail -f com ftodas as outras dicas oferecidas.

geoffc
fonte
3

O Ubuntu ainda possui menos / mais caixas distintas. Pelo menos o meu, ou o morecomando está enviando argumentos diferentes para menos.

De qualquer forma, para ver a diferença, encontre um arquivo que tenha mais linhas do que você pode ver ao mesmo tempo no seu terminal. Digite e cat, em seguida, o nome do arquivo. Ele irá apenas despejar o arquivo inteiro. Digite e more, em seguida, o nome do arquivo. Se no ubuntu, ou pelo menos na minha versão (9.10), você verá a primeira tela --More--(27%), o que significa que há mais no arquivo, e você já viu 27% até agora. Pressione espaço para ver a próxima página. lesspermite mover linha por linha, para frente e para trás, além de pesquisar e um monte de outras coisas.

Basicamente, use less. Você provavelmente nunca precisará morede nada. Eu usei lessem arquivos enormes e parece OK. Eu não acho que isso faça coisas loucas, como carregar a coisa toda na memória ( bloco de notas para tosse ). Mostrar números de linha pode demorar um pouco, porém, com arquivos enormes.

kāgii
fonte
1
A razão pela qual você vê esse comportamento é que um dos parâmetros que um programa obtém na inicialização é o nome pelo qual foi chamado. Se você pegar o binário "menos" e copiá-lo ou vinculá-lo a "mais", executá-lo através de "mais" altera seu comportamento porque sabe que deve estar em execução no modo de compatibilidade. Na verdade, há um pouco disso acontecendo em um sistema Unixy moderno. Em alguns sistemas, por exemplo, mv, cp e rm são todos iguais, apenas mudando o comportamento, dependendo de como foi chamado. Um exemplo extremo disso é o projeto Busybox, popular em Linux embarcados.
Warren Young
Os tamanhos de arquivo para / bin / more e / bin / less são diferentes e cada um deles mostra um único link físico (a coluna contém a 1).
precisa saber é o seguinte
2

Pelo menos nos sistemas que eu usei:

  • more sai automaticamente quando você chega ao final do arquivo
  • less requer que você saia explicitamente.
inetphantom
fonte
1

Além disso, menos pode visualizar arquivos compactados / compactados, mais não pode fazer isso.

Derek R.
fonte