Answers:
使用df
。您可以为它传递一个路径,它将为您提供该路径的文件系统信息。如果需要文件系统类型,请使用-T
开关,如下所示:
$ df -T test
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda2 ext4 182634676 32337180 141020160 19% /home
要提取文件系统类型,可以对其进行解析(如果设备部分过长,请使用该-P
开关以避免换df
行):
$ df -PT test | awk 'NR==2 {print $2}'
ext4
因此,您可以在if
类似以下的构造中使用该值:
if [ "$(df -PT "$path" | awk 'NR==2 {print $2}')" = "ext4" ] ; then
it is an ext4 filesystem
fi
请注意,设备列可以包含空格(但这很少见),在这种情况下,解析将失败。
与findmnt
(的一部分util-linux
):
findmnt -no fstype -T /path/to/file
使用选件时
-T,-目标路径如果路径不是安装点文件或目录,则以
findmnt
相反的顺序检查路径元素以获取安装点。其他两个选项取消标题行:-n, --noheading
并选择要列出的列:-o, --output
df
from coreutils
具有类似的选项--output=
,仅打印某些字段,fstype
例如:
df --output=fstype /path/to/file
虽然没有选择删除标头,所以您必须将输出通过管道传递到例如 | sed 1d
findmnt
工具,即使具有画线的TUI输出。谢谢!