How to test if a given path is a mount point

后端 未结 10 829
-上瘾入骨i
-上瘾入骨i 2021-01-31 08:41

Suppose do you want test if /mnt/disk is a mount point in a shell script. How do you do this?

10条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-31 09:11

    Not relying on mount, /etc/mtab, /proc/mounts, etc.:

    if [ `stat -c%d "$dir"` != `stat -c%d "$dir/.."` ]; then
        echo "$dir is mounted"
    else
        echo "$dir is not mounted"
    fi
    

    When $dir is a mount point, it has a different device number than its parent directory.

    The benefit over the alternatives listed so far is that you don't have to parse anything, and it does the right thing if dir=/some//path/../with///extra/components.

    The downside is that it doesn't mark / as a mountpoint. Well, that's easy enough to special-case, but still.

提交回复
热议问题