131 votes

Couleurs dans bash après avoir passé le piping par less ?

Quand j'ai des dircolors définis, la vie est pleine de... couleur.

Quand je pipe ls par le biais de less pour faire défiler, je perds les couleurs.

Des suggestions ?

125voto

Corin Blaikie Points 6223

Il est probable que votre ls est aliasé en ls --color=auto qui indique ls pour n'utiliser les couleurs que lorsque sa sortie est un tty. Si vous faites ls --color (ce qui est moralement équivalent à ls --color=always ), ce qui l'obligera à activer les couleurs.

Vous pouvez également modifier votre alias pour faire cela, mais je ne pense pas que ce soit une bonne idée. Il est préférable de créer un alias différent avec --color .

less besoins -R également, ce qui lui fait sortir les caractères de contrôle bruts.

5 votes

Pourquoi ne trouvez-vous pas que c'est une bonne idée d'aliaser ls pour ls --color ou ls --color=always d'ailleurs ?

13 votes

@j08lue si tu fais passer une commande qui ne gère pas la couleur, tu obtiens des caractères inutiles qui peuvent perturber la commande. Par exemple, j'ai fait ls --color=always | less et j'ai obtenu : ESC[01;32mexecute_once.shESC[0m (Je sais que c'est vieux et que vous vous en fichez probablement, mais pour les futurs visiteurs, cela peut être utile)

67voto

Jeff Hillman Points 3333

Essayez moins avec l'option -R comme ceci :

command | less -R

Ça marche pour moi dans une phrase comme celle-ci :

ls -la | grep --color=always bash | less -r

Et comme ça aussi :

ls --color | less -R

Mais vous devez modifier un peu la sortie primaire (la sortie de ls dans ce cas) avec le paramètre --color.

0 votes

Merci, cela fonctionne aussi pour ack-grep. ack-grep my_string --color | less -R

1 votes

--color n'est pas reconnu : ls : option illégale -- - Exécution de bash sur osx.

1 votes

@Scott Biggs : dans OSX il n'y a pas de --color ; essayez ls -G

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X