Penso che la risposta completa sia più una combinazione di quanto sopra.
-X (later --sort=extension)
è supportato in Linux almeno da FC3 e verrà ordinato in base all'estensione. --group-directories-first
è stato aggiunto più di recente (forse intorno a FC8?). Tuttavia, la combinazione dei due non sembra funzionare (almeno su FC8).
Il problema principale sembra essere l'uso di singole chiavi di ordinamento primarie. Guarda questa discussione sulla mailing list per avere un'idea di ciò.
Su Linux,
$ ls --group-directories-first
-X è l'opzione che stai cercando:
ls -lX