Tak satu pun dari ini memenuhi use case di mana direktori yang diberikan adalah sub direktori dalam mount point lain. Sebagai contoh, Anda mungkin memiliki / hal yang merupakan mount NFS untuk di-host: / real_thing. Menggunakan grep untuk tujuan ini di / proc / mounts / etc / mtab atau 'mount' tidak akan berfungsi, karena Anda akan mencari titik mount yang tidak ada. Sebagai contoh, / thing / thingy bukan mount point, tapi / thing di-mount pada host: / real_thing. Jawaban terbaik yang dipilih di sini sebenarnya BUKAN "cara terbaik untuk menentukan apakah direktori / volumne dipasang". Saya akan memilih menggunakan 'df -P' (-P mode standar POSIX) sebagai strategi yang lebih bersih:
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"
}
Output dari menjalankan ini adalah:
Mounted via: host:/real_thing
Jika Anda ingin tahu apa sebenarnya mount point, tidak masalah:
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"
}
Output dari perintah itu adalah:
Mounted on: /thing
Ini semua sangat berguna jika Anda mencoba membuat semacam chroot yang mencerminkan titik mount di luar chroot, di dalam chroot, melalui beberapa direktori atau daftar file yang sewenang-wenang.