Le manuel de mountpoint
dit que:
vérifie si le répertoire ou le fichier donné est mentionné dans le fichier / proc / self / mountinfo.
Le manuel de mount
dit que:
Le mode de liste est conservé à des fins de compatibilité descendante uniquement. Pour une sortie plus robuste et personnalisable, utilisez findmnt (8), en particulier dans vos scripts.
La commande correcte à utiliser est doncfindmnt
, qui fait elle-même partie du util-linux
package et, selon le manuel:
est capable de rechercher dans / etc / fstab, / etc / mtab ou / proc / self / mountinfo
Donc, il recherche en fait plus de choses que mountpoint
. Il fournit également l'option pratique:
-M, - chemin du point de montage
Définissez explicitement le fichier ou le répertoire de point de montage. Voir aussi --target.
En résumé, pour vérifier si un répertoire est monté avec bash, vous pouvez utiliser:
if [[ $(findmnt -M "$FOLDER") ]]; then
echo "Mounted"
else
echo "Not mounted"
fi
Exemple:
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"