tree
e ls
pode distinguir tipos de arquivos colorindo os nomes dos arquivos de maneira diferente.
tree
e ls
geralmente produz uma longa lista de arquivos (incluindo diretórios), então canalizo a saída stdout para less
.
Mas less
não preserva as cores. Como podemos mostrar cores ou algumas formas alternativas?
Acabei de ver a lista vinculada, mas passar para less -R
ou less -r
não funciona. Meu sistema operacional é o Ubuntu 12.04. less
é a versão 444: 09 de junho de 2011.
ls
(nãotree
) para as quais algumas implementações precisa ser dito para a saída de força de cor quando a saída não ir a um terminal (além deless -R
ser necessário)tree -C | less -R
? A-C
opção é o equivalente a menos da árvore--color=always
, acho (pelo menos funciona para mim, no Ubuntu 12.04).tree
sempre com e sem-C
saída sempre são produzidas em cores, mas por que são diferentes quando usadasless
?less
remove as cores por padrão, a menos que você dê a-R
opção, que diz para deixá-lo dentro e 2.tree
els
e outros programas geralmente desativam a cor quando detectam que sua saída está indo para outro programa (comoless
) em vez de diretamente para o seu terminal, a menos que você force a coloração com-C
ou--color=always
.Respostas:
Eu vou assumir que você está usando
ls --color=auto
, o que dizls
para usar cores no modo 'automático'. O modo 'Automático' indicaless
para ver se o STDOUT é um terminal e, nesse caso, use cores, caso contrário, não use cores. Quando vocêls
entra noless
canal, o STDOUT não é um terminal, ele está conectado ao STDIN deless
, que é um canal normal.A solução, use
ls --color
ouls --color=always
.No entanto, agora isso leva a outro problema em potencial. Dependendo do seu
less
, pode não mostrar a cor, mas mostrar os códigos de escape. A solução é usarless -R
. Isso dizless
para passar pelos códigos de escape para escapes de cores ANSI. Você não deseja usá-lo,-r
pois isso causará problemas com linhas longas que envolvem, pois menos não calcula corretamente o comprimento da linha.Solução tão completa:
Da mesma forma para
tree
:fonte