bash posts

ls colors for both linux and bsd

ls can have nice colors enabled to differentiate between file types easily, but the parameter is different between the BSD version (uses --color) and the GNU Linux version (uses -G). I have been setting up a “bash_profile”, among other things, to be shared between my users on all the POSIX computers I use. Some are Linux, some BSD based. I use Bash on both, and I wanted the colors from ls to be used on both with the shared “bash_profile” file. I couldn’t find anyone else’s solution for this, so I figured one out myself and will post it in case others want the same versatility. I simply test ls with one of the parameters and see if it throws an error. I then can set my aliases with the appropriate parameter. I do it like so:

ls --color > /dev/null 2>&1
if [ $? -eq 0 ]; then
    alias l="ls -F --color"
    alias ll="ls -lh --color"
else
    alias l="ls -FG"
    alias ll="ls -lhG"
fi