O manual do mountpoint
diz que:
verifica se o diretório ou arquivo fornecido é mencionado no arquivo / proc / self / mountinfo.
O manual do mount
diz que:
O modo de listagem é mantido apenas para compatibilidade com versões anteriores. Para uma saída mais robusta e personalizável, use findmnt (8), especialmente em seus scripts.
Portanto, o comando correto a ser utilizado éfindmnt
, ele próprio parte do util-linux
pacote e, de acordo com o manual:
é capaz de pesquisar em / etc / fstab, / etc / mtab ou / proc / self / mountinfo
Portanto, ele realmente pesquisa mais coisas do que mountpoint
. Ele também oferece a opção conveniente:
-M, --mountpoint path
Defina explicitamente o arquivo ou diretório do ponto de montagem. Veja também --target.
Em resumo, para verificar se um diretório está montado com bash, você pode usar:
if [[ $(findmnt -M "$FOLDER") ]]; then
echo "Mounted"
else
echo "Not mounted"
fi
Exemplo:
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"