tree
et ls
peut distinguer les types de fichiers en coloriant les noms de fichiers différemment.
tree
et ls
génère souvent une longue liste de fichiers (y compris les répertoires), donc je redirige la sortie stdout vers less
.
Mais less
ne préserve pas les couleurs. Comment pouvons-nous lui faire afficher des couleurs ou d'autres façons?
Je viens de voir la liste des liens, mais la tuyauterie vers less -R
ou less -r
ne fonctionne pas. Mon système d'exploitation est Ubuntu 12.04. less
est la version 444: 09 juin 2011.
ls
(pastree
) pour lesquels certaines implémentations doivent être obligées de forcer la sortie couleur lorsque la sortie ne va pas à un terminal (en plus d'less -R
être nécessaire)tree -C | less -R
? L'-C
option est l'équivalent d'un arbre de moins--color=always
, je pense (au moins cela fonctionne pour moi, sur Ubuntu 12.04).tree
avec et sans-C
sortie seule toujours en couleurs, mais pourquoi sont-ils différents lorsqu'ils sont utilisés avecless
?less
supprime les couleurs par défaut , à moins que vous lui donnez l'-R
option, qui lui dit de le laisser dans et 2.tree
etls
ainsi que d' autres programmes tournent habituellement la coloration quand ils détectent leur production va à un autre programme (commeless
) au lieu de directement sur votre terminal, sauf si vous forcez la coloration avec-C
ou--color=always
.Réponses:
Je vais supposer que vous utilisez
ls --color=auto
, ce qui indiquels
d'utiliser la couleur en mode «automatique». Le mode «automatique» indiqueless
pour voir si STDOUT est un terminal, et si c'est le cas, utilisez la couleur, sinon n'utilisez pas la couleur. Lorsque vous dirigezls
versless
, STDOUT n'est pas un terminal, il est connecté à STDIN deless
, qui est un tuyau normal.La solution, utilisez
ls --color
ouls --color=always
.Mais maintenant, cela conduit à un autre problème potentiel. Selon votre
less
, il peut ne pas afficher la couleur, mais afficher les codes d'échappement à la place. La solution est d'utiliserless -R
. Cela indiqueless
de passer par les codes d'échappement pour les échappements de couleur ANSI. Vous ne voulez pas l'utiliser-r
car cela entraînera des problèmes avec les longues lignes qui s'enroulent, car moins ne calcule pas correctement la longueur de la ligne.Solution si complète:
De même pour
tree
:la source