是否有一种快速而简单的方法来以编程方式(在 shell 脚本或 Perl 中)判断路径是位于远程文件系统(nfs 等)还是本地文件系统上?或者是解析 /etc/fstab 并检查文件系统类型的唯一方法?
Alex
问问题
3612 次
5 回答
13
stat -f -c %T <filename>
应该做你想做的。你可能还想要-l
于 2008-11-17T19:12:22.553 回答
2
您可以使用“df -T”获取目录的文件系统类型,或使用 -t 选项将报告限制为特定类型(如 nfs),如果返回“未处理文件系统”,则它不是一个您正在寻找的那些。
df -T $dir | tail -1 | awk '{print $2;}'
于 2008-11-17T19:02:24.633 回答
2
如果您df
在目录上使用仅获取其所在设备的信息,例如当前目录:
df .
然后,您可以只解析输出,例如
df . | tail -1 | awk '{print $1}'
获取设备名称。
于 2008-11-17T20:15:48.043 回答
1
我在solaris7,8,9 & 10 上测试了以下,它似乎是可靠的
/bin/df -g <filename> | tail -2 | head -1 | awk '{print $1}'
应该为您提供 fs 类型,而不是尝试匹配挂载点中的“主机:路径”。
于 2010-08-24T16:49:01.427 回答
0
在某些系统上,NFS 文件的设备编号为负数。因此,
print "remote" if (stat($filename))[0] < 0
于 2008-11-17T19:50:54.240 回答