1b4ed3b92SDavid du Colombier#!/bin/rc 2b4ed3b92SDavid du Colombier 3b4ed3b92SDavid du Colombier# flags common to GNU and BSD ls 4b4ed3b92SDavid du Colombier 5b4ed3b92SDavid du Colombier# -A all except . and .. 6b4ed3b92SDavid du Colombier# -C force mc 7b4ed3b92SDavid du Colombier# -F usual 8b4ed3b92SDavid du Colombier# -H follow symlinks 9b4ed3b92SDavid du Colombier# -L follow symlinks 10b4ed3b92SDavid du Colombier# -R recursive list 11b4ed3b92SDavid du Colombier# -U unsorted (gnu) 12b4ed3b92SDavid du Colombier# 13b4ed3b92SDavid du Colombier# -a include .files 14b4ed3b92SDavid du Colombier# -c show ctime 15b4ed3b92SDavid du Colombier# -d dirs 16b4ed3b92SDavid du Colombier# -f no sorting 17*2a782499SDavid du Colombier# -i inode numbers 18b4ed3b92SDavid du Colombier# -l long 19b4ed3b92SDavid du Colombier# -p put slash after dir (-F) 20b4ed3b92SDavid du Colombier# -r reverse 21b4ed3b92SDavid du Colombier# -s sizes 22b4ed3b92SDavid du Colombier# -t time sort 23b4ed3b92SDavid du Colombier# -u utime 24b4ed3b92SDavid du Colombier# -1 single-column 25b4ed3b92SDavid du Colombier 26b4ed3b92SDavid du Colombier 27*2a782499SDavid du Colombierflagfmt='A,C,F,H,L,R,U,a,c,d,f,i,l,p,r,s,t,u,1' 28b4ed3b92SDavid du Colombierargs='[file ...]' 29b4ed3b92SDavid du Colombier 30b4ed3b92SDavid du Colombierif(! ifs=() eval `{aux/getflags $*}){ 31b4ed3b92SDavid du Colombier aux/usage 32b4ed3b92SDavid du Colombier exit usage 33b4ed3b92SDavid du Colombier} 34b4ed3b92SDavid du Colombier 35b4ed3b92SDavid du Colombierfn fixlong { 36b4ed3b92SDavid du Colombier echo total 1000 37816336a7SDavid du Colombier /$cputype/bin/sed 's/^(.).(.........) . [0-9]+ /\1\2 1 /' 38b4ed3b92SDavid du Colombier} 39b4ed3b92SDavid du Colombier 40*2a782499SDavid du Colombierfn qid2inode { 41*2a782499SDavid du Colombier /$cputype/bin/sed 's/^\(([^ ]+).*\) /\1 /' 42*2a782499SDavid du Colombier} 43*2a782499SDavid du Colombier 44b4ed3b92SDavid du Colombierpost=cat 45*2a782499SDavid du Colombierpost2=cat 46b4ed3b92SDavid du Colombier 47b4ed3b92SDavid du Colombierall=() 48b4ed3b92SDavid du Colombier# ignore -A 49b4ed3b92SDavid du Colombierif(~ $flagC 1) post=mc 50b4ed3b92SDavid du Colombierif(~ $flagF 1) all=($all -F) 51b4ed3b92SDavid du Colombier# ignore -H, -L 52b4ed3b92SDavid du Colombier# save -R for later 53b4ed3b92SDavid du Colombierif(~ $flagU 1) all=($all -n) 54b4ed3b92SDavid du Colombier# ignore -a, -c 55b4ed3b92SDavid du Colombierif(~ $flagd 1) all=($all -d) 56b4ed3b92SDavid du Colombierif(~ $flagf 1) all=($all -n) 57b4ed3b92SDavid du Colombierif(~ $flagl 1) { all=($all -l); post=fixlong } 58*2a782499SDavid du Colombierif(~ $flagi 1) { all=($all -q); post2=qid2inode } 59b4ed3b92SDavid du Colombierif(~ $flagp 1) all=($all -F) 60b4ed3b92SDavid du Colombierif(~ $flagr 1) all=($all -r) 61b4ed3b92SDavid du Colombierif(~ $flags 1) all=($all -s) 62b4ed3b92SDavid du Colombierif(~ $flagt 1) all=($all -t) 63b4ed3b92SDavid du Colombierif(~ $flagu 1) all=($all -u) 64b4ed3b92SDavid du Colombier# ignore -1 65b4ed3b92SDavid du Colombier 66*2a782499SDavid du Colombier/$cputype/bin/ls $all $* | $post | $post2 67