diff options
Diffstat (limited to 'bash/bashrc.d/ls.bash')
-rw-r--r-- | bash/bashrc.d/ls.bash | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/bash/bashrc.d/ls.bash b/bash/bashrc.d/ls.bash index a559a44a..322644c5 100644 --- a/bash/bashrc.d/ls.bash +++ b/bash/bashrc.d/ls.bash @@ -1,26 +1,13 @@ -# Return appropriate options for ls -lsopts() { - - # Snarf the output of `ls --help` into a variable - local lshelp=$(ls --help 2>/dev/null) - - # Start collecting available options - local -a lsopts - - # If the --color option is available and we have a terminal that supports - # at least eight colors, add --color=auto to the options - local colors=$(tput colors 2>/dev/null) - if [[ $lshelp == *--color* ]] && ((colors >= 8)) ; then - lsopts=("${lsopts[@]}" --color=auto) - fi - - # Print the options as a single string, space-delimited - printf %s "${lsopts[*]}" -} - -# Alias ls with these options -alias ls="ls $(lsopts)" - -# Unset helper function -unset -f lsopts +# Define function wrapper for ls(1) with --color option if LS_COLORS is set; +# checks that color is available in the terminal within the function +if [[ $LS_COLORS ]] ; then + ls() { + local colors=$(tput colors 2>/dev/null) + if ((colors >= 8)) ; then + command ls --color=auto "$@" + else + command ls "$@" + fi + } +fi |