ls(1) on macOS and FreeBSD is the BSD version of the utility. As such it can be configured to display directory contents in color using a command line argument (-G) or environment variables (LSCOLORS). Using environment variables is nice because it'll work regardless of the arguments you pass, so there's no need to configure aliases.
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			783 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			783 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env zsh
 | 
						|
# Eryn Wells <eryn@erynwells.me>
 | 
						|
 | 
						|
function init-rc-ls
 | 
						|
{
 | 
						|
    alias la="ls -A $ls_options"
 | 
						|
    alias ll="ls -l $ls_options"
 | 
						|
    alias l.="ls -d $ls_options .*"
 | 
						|
 | 
						|
    # Enable ls colors
 | 
						|
    export CLICOLOR=1 COLORTERM=1
 | 
						|
 | 
						|
    # Define colors for ls. See the LSCOLORS documentation in ls(1).
 | 
						|
    # The default is "exfxcxdxbxegedabagacadah".
 | 
						|
    export LSCOLORS=Exdxcxfxbxegedabagacadah
 | 
						|
 | 
						|
    local dircolors_bin=$(whence -p dircolors || whence -p gdircolors)
 | 
						|
    if [[ -x "$dircolors_bin" ]]; then
 | 
						|
        if [[ -f "$HOME/.dircolors/$SYS.cfg" ]]; then
 | 
						|
            eval $dircolors_bin "$HOME/.dircolors/$SYS.cfg"
 | 
						|
        elif [[ -f "$HOME/.dircolors/default.cfg" ]]; then
 | 
						|
            eval $dircolors_bin "$HOME/.dircolors/default.cfg"
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
init-rc-ls "$@"
 |