#!/bin/bash # # List Disk Snapshot Hierarchy # if [ "$UID" -eq 0 ] then echo "This script should NOT be run as root." exit 1 fi # if [ $# -ne 1 ]; then echo "Usage: $0 " exit 1 fi # declare -i hddepth=0; UUID_OR_FILE="$1" DISK_UUID=`VBoxManage showhdinfo $UUID_OR_FILE|grep "^UUID:"|cut -d":" -f2-|sed 's/[ ]*//'` DISK_FILE=`VBoxManage showhdinfo $DISK_UUID|grep "^Location:"|cut -d":" -f2-|sed 's/[ ]*//'` function listuuids { let hddepth=$hddepth+1; DISK_UUID=${1} CHID_UUIDS=`VBoxManage showhdinfo "${DISK_UUID}"|grep -A500 -m1 -e 'Child UUIDs:'|cut -b17-` for uuid in $CHID_UUIDS do for ((i=0; $i < $hddepth; i++)) do let depthit=$hddepth-$i; if [ $depthit -eq 1 ]; then printf " \__ " else printf " " fi done printf "$uuid\e[0m\n"; listuuids "$uuid"; done let hddepth=$hddepth-1; } printf "$DISK_UUID <=> [${DISK_FILE}]\e[0m\n"; listuuids "${DISK_UUID}"; unset i hddepth;