- local x y perm line binls sizePadding middle tail size \
- max_hl_digits hardlinks initial_space hardlink_spacing
- local max_hl_digits=0
- local -a lines hl
- binls=$(type -P ls)
- local first=true
- local aclchar=false
- # there's no way to tell if ls uses the acl specifier unless we loop over the data twice
- # the 11th char is either
- # . for selinux context
- # + for any other kind of acl
- # or blank for no other kind of acl
- # I don't want to see this generally.
- while read line; do
- # if we did want the first line, it would need to be stripped of non-printing chars:
- # line=${line#$'\E[00m'}
- # when no argument is given to ls, the first line is like "total 123M". strip that
- if $first && [[ ! $@ ]]; then
- first=false
- else
- lines+=("$line")
- [[ ! ${line:10:1} == " " ]] && aclchar=true
+ case $1 in
+ -h|--help)
+ cat <<'EOF'
+usage: ll [ARGS_TO_LS]
+ls -lA with enhanced output
+
+* octal permissions
+* omited acl type specifier
+* better hard link count: number of subdirectories or the
+ number of linked files or omitted if it is 0
+* better human readable size
+* more natural date/time format for my American raised eyes
+* remove first line size summary
+
+EOF
+ ;;
+ esac
+ local x y perm line binls sizePadding middle tail size \
+ max_hl_digits hardlinks initial_space hardlink_spacing
+ local max_hl_digits=0
+ local -a lines hl
+ binls=$(type -P ls)
+ binlslink=$(readlink -f $binls)
+ if [[ $binlslink == */busybox ]]; then
+ $binls -lA "$@"
+ return
+ fi
+ local aclchar=false
+ # there's no way to tell if ls uses the acl specifier unless we loop over the data twice
+ # the 11th char is either
+ # . for selinux context
+ # + for any other kind of acl
+ # or blank for no other kind of acl
+ # I don't want to see this generally.
+ while read -r line; do
+ # if we did want the first line, it would need to be stripped of non-printing chars:
+ #line=${line#$'\E[00m'}
+ # lines like "total 123M", we don't want
+ if [[ ! $line =~ ^total\ [0-9][^\ ]*$ ]]; then
+ lines+=("$line")
+ if ! [[ $line == [-dscbl][-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]* ]]; then
+ hardlinks=
+ else
+ [[ ! ${line:10:1} == " " ]] && aclchar=true