El manual de mountpoint
dice que:
comprueba si el directorio o archivo dado se menciona en el archivo / proc / self / mountinfo.
El manual de mount
dice que:
El modo de listado se mantiene solo por compatibilidad con versiones anteriores. Para una salida más robusta y personalizable, use findmnt (8), especialmente en sus scripts.
Entonces, el comando correcto a usar esfindmnt
, que es en sí mismo parte del util-linux
paquete y, de acuerdo con el manual:
puede buscar en / etc / fstab, / etc / mtab o / proc / self / mountinfo
Entonces, en realidad, busca más cosas que mountpoint
. También proporciona la opción conveniente:
-M, - ruta del punto de montaje
Defina explícitamente el archivo o directorio de punto de montaje. Consulte también --target.
En resumen, para verificar si un directorio está montado con bash, puede usar:
if [[ $(findmnt -M "$FOLDER") ]]; then
echo "Mounted"
else
echo "Not mounted"
fi
Ejemplo:
mkdir -p /tmp/foo/{a,b}
cd /tmp/foo
sudo mount -o bind a b
touch a/file
ls b/ # should show file
rm -f b/file
ls a/ # should show nothing
[[ $(findmnt -M b) ]] && echo "Mounted"
sudo umount b
[[ $(findmnt -M b) ]] || echo "Unmounted"