Keines dieser Verzeichnisse erfüllt den Anwendungsfall, bei dem ein bestimmtes Verzeichnis ein Unterverzeichnis innerhalb eines anderen Einhängepunkts ist. Zum Beispiel könnten Sie / thing haben, das ein NFS-Mount für den Host ist: / real_thing. Die Verwendung von grep für diesen Zweck unter / proc / mounts / etc / mtab oder 'mount' funktioniert nicht, da Sie nach einem Mount-Punkt suchen, der nicht existiert. Zum Beispiel ist / thing / thingy kein Mount-Punkt, aber / thing ist auf host gemountet: / real_thing. Die beste Antwort, über die hier abgestimmt wurde, ist NICHT "der beste Weg, um festzustellen, ob ein Verzeichnis / Volume eingehängt ist". Ich würde dafür stimmen, 'df -P' (-P POSIX-Standardmodus) als sauberere Strategie zu verwenden:
dev=`df -P /thing/thingy | awk 'BEGIN {e=1} $NF ~ /^\/.+/ { e=0 ; print $1 ; exit } END { exit e }'` && {
echo "Mounted via: $dev"
} || {
echo "Not mounted"
}
Die Ausgabe von diesem Programm ist:
Mounted via: host:/real_thing
Wenn Sie wissen möchten, wie hoch der tatsächliche Einhängepunkt ist, ist dies kein Problem:
mp=`df -P /thing/thingy | awk 'BEGIN {e=1} $NF ~ /^\/.+/ { e=0 ; print $NF ; exit } END { exit e }'` && {
echo "Mounted on: $mp"
} || {
echo "Not mounted"
}
Die Ausgabe dieses Befehls lautet:
Mounted on: /thing
Dies ist alles sehr nützlich, wenn Sie versuchen, eine Art Chroot zu erstellen, die Mount-Punkte außerhalb der Chroot innerhalb der Chroot über ein beliebiges Verzeichnis oder eine beliebige Dateiliste spiegelt.