是否有一种快速而又脏的方式以编程方式,在shell脚本或Perl中告诉路径是位于远程文件系统(nfs等)还是本地路径?或者是解析/ etc / fstab并检查文件系统类型的唯一方法吗?

有帮助吗?

解决方案

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

其他提示

您可以使用<!>“; df -T <!>”;获取目录的文件系统类型,或使用-t选项将报告限制为特定类型(如nfs),如果它返回<!>“;没有文件系统处理<!>”,那么它不是一个你正在寻找的那些。

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

如果您在目录上使用df来获取其所在设备的信息,例如对于当前目录:

df .

然后,您可以解析输出,例如

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

获取设备名称。

我在solaris7,8,9 <!>放大器上测试了以下内容; 10,它似乎是可靠的

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

应该为你提供fs类型,而不是试图匹配<!> quot; host:path <!> quot;在您的挂载点。

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

print "remote" if (stat($filename))[0] < 0
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top