summaryrefslogtreecommitdiff
path: root/examples/scripts/vtree2
blob: 878cbabc26a6c71dae04037093d1fbdae34b6a23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
#
# vtree - make a tree printout of the specified directory, with disk usage
#	  in 1k blocks
#
# usage: vtree [-a] [dir]
#
# Original posted to Usenet sometime in February, 1996
# I believe that the original author is Brian S. Hiles <bsh29256@atc.fhda.edu>
#
usage()
{
	echo "vtree: usage: vtree [-a] [dir]" >&2
}

while getopts a opt
do
	case "$opt" in
	a)	andfiles=-a ;;
	*)	usage ; exit 2 ;;
	esac
done

shift $((OPTIND - 1))

export BLOCKSIZE=1k	# 4.4 BSD systems need this

[ $# -eq 0 ] && set .

while [ $# -gt 0 ]
do
	cd "$1" || { shift; [ $# -ge 1 ] && echo >&2; continue; }
	echo -n "$PWD"

	du $andfiles | sort -k 2f | sed \
		-e 's/\([^	]*\)	\(.*\)/\2  (\1)/' \
		-e "s#^$1##" \
		-e 's#[^/]*/\([^/]*\)$#|____\1#' \
		-e 's#[^/]*/#|    #g'
	
	[ $# -gt 1 ] && echo 
	shift
done