X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=ll-function;h=eb04f916cf3a986ffb8d594efe72074c56d65bba;hb=02239b8021771f96788497c79161fb078898c576;hp=30c749e59239daa889aae24e889234643342e08e;hpb=66a2e479063e79809cf56314636cc6469d018b0d;p=small-misc-bash diff --git a/ll-function b/ll-function index 30c749e..eb04f91 100644 --- a/ll-function +++ b/ll-function @@ -14,14 +14,24 @@ # limitations under the License. -# ls -lA with enhanced output -# octal permissions -# omited acl type specifier -# better hard link count: number of subdirectories or number of linked files or omitted if 0 -# better human readable size -# more natural date/time format for my American raised eyes -# remove first line size summary ll() { + 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 @@ -56,12 +66,8 @@ ll() { hardlinks="${y#$initial_space}" # remove any initial spaces hardlinks="${hardlinks%%[[:space:]]*}" # remove everything beyond first word # ignore the hardlinks that files/dirs always have - if [[ ${line:0:1} == d ]]; then - hardlinks=$(( hardlinks - 2 )) - else - hardlinks=$(( hardlinks - 1 )) - fi - [[ $hardlinks == 0 ]] && hardlinks= + hardlinks=$(( hardlinks - 1 )) + [[ $hardlinks == 0 ]] && hardlinks= if (( ${#hardlinks} > max_hl_digits )); then max_hl_digits=${#hardlinks} fi @@ -76,7 +82,8 @@ ll() { for index in "${!lines[@]}"; do line=${lines[index]} hardlinks=${hl[index]} - if ! [[ $line == [-dscbl][-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]* ]]; then + if ! [[ $line == [-a-ZA-Z][-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT]* ]]; then + # line we don't understand printf "%s\n" "$line" else perm=0