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 "$@"
 |