2008-11-17 84 views

回答

13

stat -f -c %T <filename>应该做你想做的。您可能还需要-l

2

您可以使用“DF-T”来获得文件系统类型的目录,或使用-t选项来限制到特定类型的报告(如NFS),如果它回来了“不处理任何文件系统”,那么它不是你要找的那个。

df -T $dir | tail -1 | awk '{print $2;}' 
+1

不可移植的 - “DF-T”不Solaris上运行,例如。 – 2008-11-17 19:28:35

+0

如果所有的网络文件系统使用主机:路径语义的设备名称,那么我想你可以检查:在设备名称或东西的效果即可。 – 2008-11-17 20:28:37

0

在某些系统中,设备号为负NFS文件。因此,

print "remote" if (stat($filename))[0] < 0 
2

如果使用df上的一个目录,仅保留设备的信息驻留在,例如对于当前目录:

df . 

然后,你可以解析输出,

df . | tail -1 | awk '{print $1}' 

获取设备名称。

1

我已经测试了solaris7,8,9 & 10以下,它似乎是可靠的

/bin/df -g <filename> | tail -2 | head -1 | awk '{print $1}' 

应该给你有FS型,而不是试图以匹配“主机:路径”中你的挂载点。

相关问题