Answers:
您应该使用mount(8)命令,该命令在所有Linux和UNIX系统上都可用。
如果运行mount
不带任何附加参数,它会列出所有目前安装在您的系统分区,文件系统类型和任何安装选项,例如noexec
,rw
或nosuid
。
例如:
% mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot type ext4 (rw,relatime,data=ordered)
/dev/mapper/basement-root on / type ext4 (rw,relatime,data=ordered)
/proc/mounts
优先使用mount
。如果/etc/mtab
未更新(例如,因为/
是只读的),则的输出mount
可能不是最新的。另外,对于某些选项(不是noexec
),mount
会为您提供过滤后的输出,这对于某些版本的内核和安装组合可能会产生误导(例如,与atime相关的选项)。
假设您正在Linux上运行它,是的,这很好。检查noexec
在逗号之间或在其列的开头或结尾处将更加健壮。
grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts
这在awk中可能更清楚:
awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'