El problema no es que more
y less
no están coloreando su salida, es que ls
no genera el color porque está conectado a otro proceso en lugar del terminal.
No puedes obtener fácilmente ls
para ser más inteligente sobre cuándo genera color, pero puede agregar --color
para forzarlo a que emita color cuando lo estás canalizando a more
Cuando tenga una salida en color, use ... |less -R
para hacer less
pasar los colores al terminal en lugar de mostrar los códigos de escape como texto
ls --color | less -r
Probado en Linux, GNU userland.