Se você quiser verificar se é o ponto de montagem de um sistema de arquivos, é para isso que o comando mountpoint
(na maioria dos sistemas baseados em Linux) é:
if mountpoint -q -- "$dir"; then
printf '%s\n' "$dir is a mount point"
fi
Ele faz isso verificando se .
e ..
têm o mesmo número de dispositivo ( st_dev
in stat()
result). Então, se você não tem o comando mountpoint
, você pode fazer:
perl -le '$dir = shift; exit(1) unless
(@a = stat "$dir/." and @b = stat "$dir/.." and
($a[0] != $b[0] || $a[1] == $b[1]))' "$dir"
Como mountpoint
, ele retornará verdadeiro para /
, mesmo que /
não seja um ponto de montagem (como em uma chroot
jail) ou false
para um ponto de montagem de um bind monte do mesmo sistema de arquivos dentro de si mesmo.
Ao contrário de mountpoint
, para links simbólicos, ele verifica se o destino do symlink é um ponto de montagem.