![检查文件夹是否位于共享磁盘或本地磁盘上?](https://linux22.com/image/1290091/%E6%A3%80%E6%9F%A5%E6%96%87%E4%BB%B6%E5%A4%B9%E6%98%AF%E5%90%A6%E4%BD%8D%E4%BA%8E%E5%85%B1%E4%BA%AB%E7%A3%81%E7%9B%98%E6%88%96%E6%9C%AC%E5%9C%B0%E7%A3%81%E7%9B%98%E4%B8%8A%EF%BC%9F.png)
如何检查 Linux 中的某个文件夹是位于共享磁盘还是本地磁盘?
答案1
您可以通过以下方式判断文件夹是否位于本地磁盘上查找文件系统类型st_dev
。答案的第一部分是查找包含该文件夹的文件系统。为此,您需要使用stat
文件夹的信息。(您也可以通过检查文件夹路径来执行此操作,但随后必须检查每个路径元素是否存在符号链接)。
然后,您可以使用以下方式交叉引用该st_dev
字段与安装表:/proc/mounts
getmntent_r()
。 有先前的答案中有一个例子。该mnt_type
字段将为您提供文件系统类型的文本,您可以将该字符串与网络文件系统列表进行比较。
您可以通过查看字段来了解有关 FUSE 文件系统的更多信息mnt_fsname
,但 FUSE 文件系统有很多。您可能希望将它们全部视为网络存储。您必须自行判断集群文件系统(例如 GFS)。