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
dffrom coreutils具有类似的选项--output=,仅打印某些字段,fstype例如:
df --output=fstype /path/to/file
虽然没有选择删除标头,所以您必须将输出通过管道传递到例如 | sed 1d
findmnt工具,即使具有画线的TUI输出。谢谢!