Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
 
27
flagfmt='A,C,F,H,L,R,U,a,c,d,f,i,l,p,r,s,t,u,1'
28
args='[file ...]'
29
 
30
if(! ifs=() eval `{aux/getflags $*}){
31
	aux/usage
32
	exit usage
33
}
34
 
35
fn fixlong {
36
	echo total 1000
37
	/$cputype/bin/sed 's/^(.).(.........) . [0-9]+ /\1\2 1 /'
38
}
39
 
40
fn qid2inode {
41
	/$cputype/bin/sed 's/^\(([^ ]+).*\) /\1 /'
42
}
43
 
44
post=cat
45
post2=cat
46
 
47
all=()
48
# ignore -A
49
if(~ $flagC 1) post=mc
50
if(~ $flagF 1) all=($all -F)
51
# ignore -H, -L
52
# save -R for later
53
if(~ $flagU 1) all=($all -n)
54
# ignore -a, -c
55
if(~ $flagd 1) all=($all -d)
56
if(~ $flagf 1) all=($all -n)
57
if(~ $flagl 1) { all=($all -l); post=fixlong }
58
if(~ $flagi 1) { all=($all -q); post2=qid2inode }
59
if(~ $flagp 1) all=($all -F)
60
if(~ $flagr 1) all=($all -r)
61
if(~ $flags 1) all=($all -s)
62
if(~ $flagt 1) all=($all -t)
63
if(~ $flagu 1) all=($all -u)
64
# ignore -1
65
 
66
/$cputype/bin/ls $all $* | $post | $post2