Không ai trong số này thỏa mãn trường hợp sử dụng trong đó một thư mục đã cho là thư mục con trong một điểm gắn kết khác. Ví dụ: bạn có thể có / thứ gắn kết NFS với máy chủ: / real_thing. Sử dụng grep cho mục đích này trên / Proc / mounts / etc / mtab hoặc 'mount' sẽ không hoạt động, bởi vì bạn sẽ tìm kiếm một điểm gắn kết không tồn tại. Ví dụ: / thing / thingy không phải là điểm gắn kết, nhưng / thing được gắn trên máy chủ: / real_thing. Câu trả lời tốt nhất được bình chọn ở đây thực sự KHÔNG phải là "cách tốt nhất để xác định xem thư mục / volumne có được gắn hay không". Tôi sẽ bỏ phiếu ủng hộ bằng cách sử dụng 'df -P' (-P chế độ tiêu chuẩn POSIX) làm chiến lược sạch hơn:
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"
}
Đầu ra từ việc chạy này sẽ là:
Mounted via: host:/real_thing
Nếu bạn muốn biết điểm gắn kết thực sự là gì, không có vấn đề gì:
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"
}
Đầu ra từ lệnh đó sẽ là:
Mounted on: /thing
Điều này rất hữu ích nếu bạn đang cố gắng tạo một số loại chroot phản chiếu các điểm gắn bên ngoài chroot, trong chroot, thông qua một số thư mục hoặc danh sách tệp tùy ý.