--- /dev/null
+#!/bin/bash
+#
+# This script "cleans" the UPPER directory tree for a subhost by
+# comparing it with the LOWER tree and remove all files that are equal
+# to content.
+
+PROGRAMDIR="$(dirname $(realpath $0))"
+. $PROGRAMDIR/functions
+
+subhost_name $1
+subhost_config
+
+
+
+: ${LOWER:-/}
+
+if [ ! -d "$UPPER" ] || [ ! -d "$LOWER" ] ; then
+ echo "*** needs a root path" >&2
+ exit 1
+fi
+
+if is_live $NAME ; then
+ echo "** Cannot clean running subhost **" >&2
+ exit 1
+fi
+
+UPPER="${UPPER%/}"
+LOWER="${LOWER%/}"
+
+if [ "$UPPER" = "$LOWER" ] ; then
+ echo "** UPER and LOWER are the same directory **" >&2
+ exit 1
+fi
+
+du -sh $UPPER
+exit 0
+DIFFS=/tmp/clean-$NAME.$$
+rm -f $DIFFS
+find $UPPER -type f -printf '%P\n'| while read X ; do
+ cmp "$UPPER/$X" "$LOWER/$X" >> $DIFFS 2>&1 && rm "$UPPER/$X"
+done
+du -sh $UPPER
+echo "(See details in $DIFFS)"