N'est-ce pas moins juste plus?

45

Quand je fais more filenameet less filename, il semblerait que les terminaux résultants sont assez similaires. Je peux naviguer et chercher dans mes fichiers identiques ( j, Space, /pattern, etc.).

Je trouve difficile de croire que lessest moreet vice versa. Y a-t-il des différences entre les deux?

Zaid
la source
36
lessest plus que more, plus ou moins, moreest moins que less. ;-)
Alan Haggai Alavi le
3
@AlanHaggaiAlavi - C'est un sacré virel: D
Kent Pawar Le
3
@AlanHaggaiAlavi Cela devrait être une réponse. :)
Tripp Kinetics
Cela dépend du type d’Unix utilisé. Sur certains, lesset moresont les mêmes exécutables, tandis que sur d'autres, ils sont différents.
Kusalananda

Réponses:

52

La différence est principalement historique à ce stade, je crois que certains systèmes ont même moreet sont lessliés durement au même binaire.

À l'origine, morecela vous permettait uniquement d'avancer dans un fichier, mais était plutôt correct pour la mise en mémoire tampon de la sortie.

lessa été écrit comme une amélioration morequi vous permettait de faire défiler le texte affiché

La première ligne de mon man lessrésumé le résume:

Less is a program similar to more, but which allows backward 
movement in the file as well as forward movement. 
utilisateur455
la source
@jkerian: côté recherche de texte et mise en mémoire tampon, pourriez-vous montrer un exemple concret de la différence de mise en œuvre de ces deux commandes?
Zaid
14
Je ne vois pas que c'est historique, je n'ai jamais vu un «plus» qui vous a permis de vous déplacer dans les deux sens. vous ne pouvez avancer que dans plus. le point historique serait que plus a été écrit avant moins, ce qui signifie «voir plus d'une page» et que le nom de commande de less est plus une blague sur moins c'est plus et plus c'est moins, en gros dire moins pourrait faire plus de choses.
xenoterracide
1
J'ai un système Solaris 10 ici, qui moreagit comme à l'ancienne more- vous ne pouvez pas revenir en arrière d'une page. Et c'est le PAGER par défaut. Me rend fou ...
Stefan Lasiewski
1
En d'autres termes, il s'agit des systèmes basés sur FreeBSD (peut-être tous les systèmes BSD?) ... puisque OS X est basé sur FreeBSD ... Le shell par défaut de Stefan Solaris sans complétion par onglets (activé?) M'a rendu fou.
xenoterracide
7
Plus ou moins la bonne réponse.
inverser
25

lessc'est beaucoup plus que more, par exemple, vous avez beaucoup plus de fonctionnalités:

g: aller en haut du fichier
G: aller en bas du fichier
/: recherche en avant
?: recherche en arrière
N: numéro de ligne
: aller à la ligne
F: similaire à tail -f, arrêtez avec ctrl + c
S: lignes scindées

Et je ne m'en souviens plus ;-)

Bauna
la source
3
h: tout ce dont vous ne vous souvenez pas;)
törzsmókus
9

En plus des fonctionnalités supplémentaires déjà mentionnées dans less, il possède également une vcommande qui ouvre le fichier actuel vià la même position. Lorsque vous quittez vi, vous serez de retour lessavec le fichier (éventuellement mis à jour) affiché.

dr-jan
la source
1
Quand il moreest interactif, il peut également commencer vien appuyant sur v.
Troubadour
4

Il y a plusieurs choses que je fais tout le temps less, qui ne fonctionnent pas more(du moins les versions sur les systèmes que j'utilise). L'une utilise Gpour aller à la fin du fichier et gau début. Ceci est utile pour les fichiers journaux, lorsque vous recherchez des entrées récentes à la fin du fichier, l’autre étant la recherche, qui lessmet en évidence la correspondance, tout en morevous amenant à la section du fichier dans laquelle la correspondance est produite. indiquez où il se trouve.

KeithB
la source
3

Moins a beaucoup plus de fonctionnalités.

Vous pouvez utiliser vpour sauter dans le $ EDITOR actuel. Vous pouvez convertir en mode tail -f avec ftous les autres conseils proposés par d’autres.

geoffc
la source
3

Ubuntu a toujours des poubelles moins / plus distinctes. Au moins le mien fait, ou la morecommande envoie des arguments différents à moins.

Dans tous les cas, pour voir la différence, recherchez un fichier comportant plus de lignes que vous ne pouvez en voir simultanément dans votre terminal. Tapez catpuis le nom du fichier. Il ne fera que vider le fichier entier. Tapez morepuis le nom du fichier. Si vous utilisez ubuntu, ou du moins ma version (9.10), vous verrez le premier écran, ce --More--(27%)qui signifie qu'il y a plus que le fichier, et vous en avez vu 27% jusqu'à présent. Appuyez sur espace pour voir la page suivante. lesspermet de se déplacer ligne par ligne, d'avant en arrière, en plus de la recherche et de tout un tas d'autres choses.

Fondamentalement, utilisez less. Vous n'aurez probablement jamais besoin morede rien. J'ai utilisé lesssur des fichiers énormes et cela semble OK. Je ne pense pas que cela fasse des choses folles, comme charger le tout dans la mémoire ( Bloc-notes contre la toux ). Afficher les numéros de ligne peut prendre un certain temps, cependant, avec d’énormes fichiers.

Kāgii
la source
1
La raison pour laquelle vous voyez ce problème est que l'un des paramètres qu'un programme obtient au démarrage est le nom par lequel il a été appelé. Si vous prenez le "moins" binaire et que vous le copiez ou le liez à "plus", son exécution via "plus" modifie son comportement car il sait qu'il doit s'exécuter en mode de compatibilité. En fait, cela se produit dans un système Unixy moderne. Sur certains systèmes, par exemple, mv, cp et rm sont tous identiques, il suffit de changer de comportement en fonction de la manière dont il a été appelé. Le projet Busybox, très répandu dans les systèmes embarqués sous Linux, en est un exemple extrême.
Warren Young
Les tailles de fichier pour / bin / more et / bin / less sont différentes et affichent chacune un seul lien dur (la colonne contient a 1).
Stefan Lasiewski
2

Au moins sur les systèmes que j'ai utilisés:

  • more se ferme automatiquement lorsque vous atteignez la fin du fichier
  • less vous oblige à quitter explicitement.
inetphantom
la source
1

Aussi, moins de personnes peuvent voir les fichiers compressés / compressés, plus ne peuvent pas le faire.

Derek R.
la source