Creo que la respuesta completa es más una combinación de las anteriores.
-X (later --sort=extension)
ha sido compatible con Linux desde al menos FC3 y se ordenará según la extensión. --group-directories-first
se agregó más recientemente (¿quizás alrededor de FC8?). Sin embargo, la combinación de los dos no parece funcionar (al menos en FC8).
El problema principal parece ser el uso de claves de ordenación primarias singulares. Consulte esta discusión de la lista de correo para obtener una idea al respecto.
En Linux,
$ ls --group-directories-first
-X es la opción que estás buscando:
ls -lX