(6 réponses)
Fermé il y a 3 ans.
Comment vérifier qu'un répertoire particulier est monté sur la machine Linux.
Par exemple, il existe un dossier nommé test, je veux vérifier s'il est monté ou non.
Réponse acceptée :
Si vous voulez vérifier qu'il s'agit du point de montage d'un système de fichiers, c'est ce que le mountpoint commande (sur la plupart des systèmes basés sur Linux) est pour :
if mountpoint -q -- "$dir"; then
printf '%sn' "$dir is a mount point"
fi
Il le fait en vérifiant si . et .. ont le même numéro d'appareil (st_dev dans stat() résultat). Donc, si vous n'avez pas le mountpoint commande, vous pourriez faire :
perl -le '$dir = shift; exit(1) unless
(@a = stat "$dir/." and @b = stat "$dir/.." and
($a[0] != $b[0] || $a[1] == $b[1]))' "$dir"
Comme mountpoint , il retournera vrai pour / même si / n'est pas un point de montage (comme dans un chroot prison), ou false pour un point de montage d'un bind montage du même système de fichiers en lui-même.
Contrairement à mountpoint , pour les liens symboliques, il vérifiera si la cible du lien symbolique est un point de montage.