Existem várias maneiras de verificar se um determinado diretório é um ponto de montagem, por exemplo (no Linux), verificando a lista de pontos de montagem
if ! </proc/mounts awk '$2 == "/mount/point" {exit(0)} END {exit(1)}'; then
mount /mount/point
fi
ou (portably) verificando se o ponto de montagem do sistema de arquivos do caminho é ele mesmo
if ! df -P /mount/point | grep -q '/mount/point$'; then
mount /mount/point
fi
Se o possível ponto de montagem puder ser um link simbólico, veja se esse diretório está em um sistema de arquivos diferente de seu pai:
if df -P /mount/point/. /mount/point/.. | {
read -r _; read -r dev1 _; read -r dev2 _
[ "$dev1" = "$dev2" ]
}; then
mount /mount/point
fi
Uma abordagem alternativa é usar um automounter para montar automaticamente o diretório quando for acessado. Por exemplo, no Linux, você pode usar o autofs :
- Remova o comentário da linha em
/etc/auto.master
que lê /misc /etc/auto.misc
- Em
/etc/auto.misc
, adicione windows_stuff -fstype=ntfs :/dev/sdz99
(substitua sdz99
pela partição que você deseja montar)
- Crie um link simbólico
/home/user/folder
→ /misc/windows_stuff
- Execute
/etc/init.d/autofs reload
(ou o que for que diga autofs
para recarregar sua configuração em sua distribuição).