Bu cevap işe yarıyor, ancak GUI alternatifinden biraz daha kaba (5 yıl sonra hala Windows dışında hiçbir şey üzerinde çalışılmıyor). Bu, BSD, Linux, Mac üzerinde çalışacak, ancak Windows (Cygwin olmadan) üzerinde çalışacaktır. ** Kendi sorumluluğunuzdadır **
DEBUG=true; PROMPT=true
vbox_delete_all_snapshots() {
vboxmanage snapshot "$1" list |
tac |perl -lane 'print $1 if /UUID: ([a-z0-9-]+)/' |
xargs ${PROMPT:+-p} -n1 ${DEBUG:+echo} vboxmanage snapshot "$1" delete
if $DEBUG && [ $? = 0 ] ; then
echo "The above commands were NOT run. Unset DEBUG (and PROMPT if you feel lucky) to do so."
fi
}
read -p"Enter the name of the VM (or its ID): " vmname; vbox_delete_all_snapshots "$vmname"
Uyarılar
- Anlık görüntü yoksa, Linux şikayet edecek. Linux / GNU kullanıyorsanız,
-r
seçenek xargs
komuta
- Gerçekten çalıştırmak için komutları yürütün
unset DEBUG
.
Komutları her biri için sorulmadan çalıştırmak için, yürüt unset PROMPT
.
- Bu, normal bir "ağaç" ağacını idare etmelidir, ancak yalnızca her anlık görüntünün tam olarak 0 veya 1 çocuğu olduğu durumlarda test ettim.
Örnek çıktı
Deleting snapshot 'B5' (a02cb9e8-c5be-425d-9bcd-806d72e5a083)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B4' (422b29b8-cf79-4c92-a415-a08c1d3dd5a0)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B3' (c1ed469f-ffc3-4cb8-81fe-bbf6581e5858)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'b2' (c0fa9d90-6293-46e5-bcd7-25f2b36f95c4)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B1' (894147cb-2cc0-48e3-86c7-bec156da762a)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'test' (44a69565-1354-4b98-a2cf-64fd7caa6c56)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%