Il problema non è quel more
e less
non stanno colorando il loro output, è quel ls
non emette il colore perché è connesso a un altro processo anziché al terminale.
Non puoi facilmente ottenere ls
per essere più intelligente riguardo a quando emette il colore, ma puoi aggiungere --color
per forzare l'output del colore quando lo trasferisci a more
Quando hai un output a colori, usa ... |less -R
per fare less
passa i colori al terminale invece di mostrare i codici escape come testo
ls --color | less -r
Testato su Linux, area utente GNU.