Peut-il moins suivre (en appuyant sur F) une entrée canalisée (de manière similaire à un fichier)? Pour un fichier en cours d'écriture, la commande
less <file>
suivra le fichier en appuyant sur F.
Mais si j'ai une commande qui envoie directement les tuyaux en moins, comme ceci
command | less
appuyer sur F ne fera rien.
Il semble donc que les tuyaux ne peuvent pas être suivis comme les fichiers? Ou peut-être que cela a à voir avec la commande qui écrit également dans STDERR? L'effet que j'essaie d'obtenir est toujours de voir la dernière sortie de la commande: tout comme garder PageDown enfoncé!
Une remarque connexe vaut pour G (aller à la fin): lorsque vous canalisez directement vers moins, cela ne fonctionnera pas.
Réponses:
Appuyez sur Fou Gfait
less
essayer d'atteindre l'entrée EOF. Si l'entrée est un tuyau, seless
bloque jusqu'à ce que le tuyau soit fermé de l'autre côté (et non "ne fait rien").Pour contourner ce problème, enregistrez la sortie de la commande dans un fichier temporaire en arrière-plan, puis utilisez-la comme entrée pour
less
:Il n'y a pas d'option pour le faire
less
uniquement; cependant, j'admets que ce serait utile.la source
less
bloque jusqu'à ce que le tuyau soit fermé de l'autre côté . C'est une sorte de déclaration trompeuse. Ce qui se passe, c'est que moins d'appelsread
dans un mode de blocage, en attente de nouvelles données ou de la fermeture du canal.less
non seulement une lecture de blocage est effectuée, mais elle le fait dans une boucle en attente d'EOF. Et un EOF sur un tuyau ne se produit que si son autre côté est fermé.less
mettait à jour l'écran dans cette boucle, il n'y aurait pas de problème. Le blocage de la lecture a peu à voir avec ce problème.less
ne pourrait pas mettre à jour l'écran, s'il n'y a pas de données; lorsque certaines données apparaissent, le blocage de la lecture les renverra etless
pourrait mettre à jour l'écran sans thread séparéOui, à partir de la version 474. Cependant, il n'est pas encore mentionné dans les notes de publication d'une version car il reste un problème avec cette fonctionnalité actuellement. Voici un commentaire du mainteneur de moins - Mark Nudelman:
Concernant la commande F sur les tuyaux, elle est également corrigée dans less-474. Au lieu de chercher à EOF, la commande F cherche à la fin de l'entrée tamponnée et commence à y lire. Cependant, il n'est pas vraiment utilisable car lorsque vous appuyez sur CTRL-C pour arrêter la commande F, il tue le processus produisant la sortie. Je ne sais pas comment résoudre ce problème.
Jusqu'à ce que ce problème soit résolu en moins, on peut le contourner en utilisant les fonctionnalités du shell. Voir ma réponse à Existe-t-il un moyen de quitter le mode de suivi «moins» sans arrêter d'autres processus dans le tuyau? question pour plus de détails.
Pour référence, le problème avec F ne fonctionnant pas avec les tuyaux a le numéro de référence 300 dans la liste des bogues connus et est intitulé La commande F ne fonctionne pas sur l'entrée canalisée.
Il fonctionne à partir de la version 466. Citant les notes de publication de cette version:
la source
À partir de la page de manuel less
donc ça devrait marcher, et ça marche vraiment pour moi.
la source