#!/bin/bash if [[ -z $1 ]] ; then echo "Usage: $0 " exit 1 fi prompt=true case $1 in -y) prompt=false; shift;; esac while [[ $# -gt 0 ]] ; do root=$1 shift mounts=$(gawk -v p="${root%/}" '$2 ~ "^"p { print $2 }' /proc/mounts | tac) if [[ -z ${mounts} ]] ; then echo "No mounts found ..." echo mount continue fi echo "Unmounting: " printf '\t%s\n' ${mounts} if ${prompt} ; then printf "OK? [y/N] " read v else v=y fi [[ ${v} == "y" ]] && sudo umount -v ${mounts} done