summaryrefslogtreecommitdiff
path: root/examples/scripts/vtree2
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scripts/vtree2')
-rwxr-xr-xexamples/scripts/vtree243
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/scripts/vtree2 b/examples/scripts/vtree2
new file mode 100755
index 0000000..878cbab
--- /dev/null
+++ b/examples/scripts/vtree2
@@ -0,0 +1,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