J'avais l'habitude de cat
voir des fichiers. Ensuite, j’ai appris que less
c’est généralement mieux et qu’il est indispensable si le fichier est plus long que quelques dizaines de lignes.
Ma question: Y a-t-il jamais une raison d'utiliser cat
au lieu de less
? Y at-il une situation où cat
est une meilleure solution?
less
etcat
résoudre des problèmes différents et ils sont meilleurs l'un que l'autre dans leur propre domaine de problèmescat
pour canaliser sa sortie dans laless
suite.cat
pour imprimer des fichiers très courts sur la console, les fichiers/proc
et/sys
sont de très bons candidats. De cette façon, je peux voir le contenu de plusieurs fichiers simultanément.Réponses:
Personnellement, je préfère
view
le contenu statique outail -f
dynamique.Cela ne répond pas à votre question, cependant. Il y a un dicton "pourquoi utiliser plus si vous avez moins" ;-)
Mais il y a des cas où je préfère les chats aux moins: je travaille généralement avec X11-windows. Ces fenêtres ont un tampon de défilement qui peut être défini sur une centaine de lignes.
Faire un
cat
pour - disons 200 lignes et ensuite utiliser la souris avec la barre de défilement est plus confortable pour moi queless
dans ces cas.la source
view
vous dire l'habitudevim -R
, ou si vous avez autre chose avec ce nom?less +F
fait quoitail -f
fait.view
n’est pas un alias; c'est un lien (versvi
ouvim
).vi
regardeargv[0]
quand il commence (pour voir quel nom il a été invoqué) et, s'il s'agit deview
ourview
, il définit le mode lecture seule (comme si vous aviez tapévim -R
).Bien que les deux commandes vous permettent d'afficher le contenu d'un fichier, leur objectif d'origine est très différent.
less étend les capacités de more . Ce dernier a été créé pour afficher le contenu d’un fichier écran par écran. less ajoute des fonctionnalités telles que les mouvements en arrière et une meilleure gestion de la mémoire (inutile de lire le fichier en entier avant de pouvoir voir les premières lignes).
cat concatène des fichiers et imprime le résultat sur la sortie standard. Si vous ne fournissez qu'un seul fichier, vous verrez le contenu de ce fichier. Il devient "puissant" lorsque vous fournissez plusieurs fichiers. Un bon exemple est la combinaison de split et de chat. La première commande divisera un fichier volumineux en petites parties. Le second concaténera ensuite les petites parties dans un seul fichier.
Pour revenir à votre question, cat serait préféré dans un script autonome exigeant que les fichiers soient lus entièrement (ou concaténés) sans interaction. En ce qui concerne la consultation des fichiers, je pense que c’est davantage une question de goût.
la source
less
permet toujours de rechercher dans le fichier, ce quicat
n'est pas le cas.J'utilise généralement
cat
lorsque j'ai besoin de taper une commande basée sur quelque chose dans le fichier.cat
est plus pratique car vous pouvez voir le fichier (s'il est petit) pendant que vous avez accès à l'invite du shell. Il permet également de doubler les tuyaux.la source
Lorsque vous avez affaire à plusieurs fichiers et que vous souhaitez les concaténer.
De la page de manuel:
la source
Il y a des gens qui soutiennent violemment que le seul but de
cat
est de con chat fichiers Enate. Pour toute autre utilisation, il y amore
(ouless
).Mais ceci ne tient pas compte d’un fait assez important:
cat
c’est un caractère de moins à taper. J'utilise ces commandes si souvent qu'un personnage de moins est une évidence.Une autre raison est lorsque vous souhaitez créer un fichier. Je copie souvent le texte du Web dans un fichier comme celui-ci (invite de commande affichée):
C'est-à-dire que j'ouvre un fichier
filename
pour un accès en écriture, colle le contenu et ferme le flux en appuyant sur Ctrl- D. Niless
nimore
ne peut le faire, et c'est plus rapide que d'ouvrir un éditeur.la source
$<filename
(où$
est l'invite) appelle $ PAGER avec stdin connecté àfilename
. C'est encore moins de caractères à taper quecat
.pbpaste > filename
, et je pense que X a quelque chose de similaire. J'utilise toujourscat
pour la création rapide de fichiers, mais pas pour le collage.pbcopy
/pbpaste
à d'autres fins.q
pour sortirless
: DParfois, vous ne voulez pas que la pagination soit faite,
less
mais simplement le fichier complet que vous utiliseriezcat
.la source
J'utilise
cat
pourgrep
(plusieurs) fichiers.cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"
Je sais que
grep
prend en charge les noms de fichiers, mais si vous recherchez le même fichier pour différents termes de recherche, il est plus facile de modifier une commande dans laquelle le terme de recherche est la dernière chose de la ligne.la source
cat
peut être utilisé pour concaténer plusieurs fichiers binaires en un seul:la source
J'utilise
less -FX
, ce qui permet deless
se comporter commecat
lorsqu'un fichier peut être affiché sur un seul écran. De laless(1)
page de manuel:la source
En raison de la profusion de variantes Unix, beaucoup de gens n’ont pas à administrer leurs systèmes (avec vengeance). Lorsque les choses vont mal, vous pourrez peut-être simplement redémarrer et entrer dans votre système dans ce qu'on appelle un environnement restreint.
Vous obtenez une ligne de commande et un accès à un petit ensemble de commandes jugées utiles qui sont petites et généralement liées statiquement. Vous pouvez obtenir vi en tant qu'éditeur ou même un éditeur plus petit, mais pas emacs ou vim. Vous auriez un chat, mais pas moins. L'idée est de vous donner suffisamment d'outils pour réparer votre système sans prendre trop de ressources car ces ressources risquent d'être mal configurées ou toutes utilisées. moins les circonstances sont superflues.
la source
Et
less
n’est pas préinstallé sur toutes les distributions GNU / Linux. (par exemple, Gentoo)cat
est partout, probablement.la source
Les
cat
reste à l'écran. Toutless
disparaît.Clarifié par / pour Volker Siegel:
La sortie de
cat
reste à l'écran. Tout ce qui est indiqué parless
disparaît après la fermeture.la source
Il peut y avoir un problème avec l'élévation de privilèges, car dans "moins", vous pouvez appuyer sur "v" pour éditer un fichier ou "!" envoyer une commande shell.
Vous pouvez autoriser certains utilisateurs à afficher un fichier qui ne peut être lu que par le superutilisateur, mais pas leur permettre de l'éditer ou d'utiliser les privilèges de superutilisateur en général. Vous pouvez le faire en éditant '/ etc / sudoers' pour leur permettre d'utiliser 'sudo / bin / cat / etc / importantfile'. Vous ne voudriez pas autoriser 'sudo / usr / bin / less / etc / importantfile', car ils pourraient utiliser 'v' pour éditer le fichier ou utiliser '!' pour lancer un shell avec les privilèges de super-utilisateur complets.
Bien entendu, les utilisateurs pourraient utiliser 'sudo / bin / cat / etc / importantfile | less 'et utilisent toujours' moins ', sans les risques de sécurité.
la source
Les deux sont différents.
less
est un pager non standard (more
standard), utilisé pour la visualisation de texte, alors qu’ilcat
s’agit d’un utilitaire standard, utilisé pour concaténer tout type et nombre de flux de données en un seul.Ils peuvent sembler faire la même chose dans certaines circonstances, mais il en va de même pour les autres services publics.
la source
Pour plus de commodité. le chat a 3 caractères tandis que plus / moins a 4 caractères. Et taper chat nécessite seulement votre main gauche.
la source
En ce qui concerne la manière d'afficher les caractères à l'écran, vous
less
pouvez faire ce que vouscat
pouvez faire. Et beaucoup plus.Mais il existe une très bonne raison d’utiliser cat dans certains cas:
less
c’est trop complexe pour le lancer sur des problèmes très simples. J'ai tellement d'options qu'il est difficile de trouvercat
celles qui sont liées dans la page de manuel.Voulez-vous afficher les onglets dans un
Makefile
?Dans
man cat
, la première option est-A
.La description n'est pas utile:
-vET
.Mais le nom de l' option sonne juste:
--show-all
.Et
cat -A Makefile
fait ce dont j'ai besoin.Maintenant, allez chercher ça pour
less
.la source
'Less' et 'more' fonctionneront exactement comme 'cat' si la sortie n'est pas un terminal (tty), en ce qui concerne les pipes et les fichiers, ils ne retourneront pas à la pagination.
Je pense qu'il est prudent de dire que 'cat' est toujours présent sur tous les systèmes de type Unix que vous trouverez jamais. La présence de «moins» et / ou de «plus» sur tout système est moins prévisible.
Par conséquent, dans les scripts, si vous n'avez besoin que d'une opération sans pagination, 'cat' est certain d'être présent partout où votre script est utilisé sur un système de type Unix.
la source
more
cela sera disponible, étant donné que cela est imposé par la spécification Single Unix.less
ou unmore
sera présent, mais je pense qu’on ne peut pas faire confiance à un particulier, ni au fait qu’il s’agit d’une «vraie» implémentation ... souvent l’un a un alias, parfois même. re une version minimale légère.Piping cat via grep est utile:
la source
grep
prend un nom de fichier en argument, ou vous pouvez utiliser une redirection. La pipe est chère.less
" est dans le titre de la question ...grep [search term] [filename]
Par conséquent, il est plus pénible de modifier le terme de recherche si j'utilise l'historique du terminal. En recherchant grep, le terme de recherche est la dernière chose sur la ligne et est plus facile à modifier.cat
:< [filename] grep [search term]
et< filename tail -n 1000 | grep pattern
. La redirection peut aller à peu près n'importe où sur une ligne de commande.