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