Come hai scoperto, la versione di Darwin del comando ls
non supporta l'opzione -X | --sort=extension
. Questa opzione è unica per la versione GNU di ls
.
Puoi ottenere la versione GNU di ls
per il tuo sistema. Il modo più semplice per farlo è tramite il Homebrew gestore di pacchetti e sistema di porting. Con Homebrew installato fai:
brew install coreutils
per aggiungere il pacchetto GNU Core al tuo sistema. Tutte le utility saranno precedute da g
in modo che non entrino in collisione con i programmi di utilità Darwin predefiniti forniti da OS X.
Con i GNU Core Utilites installati ora puoi fare:
gls -X
E vedrai l'output ordinato come desideri.
Se vuoi utilizzare GNU Core Utils al posto delle utility fornite con OS X puoi inserire la seguente riga nel tuo file ~/.bashrc
:
source /usr/local/Cellar/coreutils/8.14/aliases
E non dovrai più usare il prefisso g
sui comandi. Devo dire che non è una cosa completamente sicura da fare, poiché alcuni dei programmi di utilità GNU differiscono dagli strumenti di bash built-in e Darwin nel modo in cui si comportano, abbastanza da far fallire altre cose nella sessione di shell. Quindi fai questo con cautela.