有没有办法确定挂载点的类型?

时间:2010-11-29 22:55:15

标签: macos bash mount-point

我有一个bash脚本来处理Mac OS X 10.5和Mac中的文件。 10.6。现在需要确定文件是在本地卷还是远程AFP卷上。 Mac OS X上的所有挂载点都在/Volumes,但我看不出本地和版本之间的任何差异。远程卷,至少使用ls -al(启动卷除外,它是/的符号链接)。

有没有办法以编程方式,尤其是可以从bash脚本轻松调用的东西(我真的不想在C / Obj-C中用OS X特定的API重写它,除非绝对必要),到确定或挂载点的类型?甚至卷映射到的设备(假设使用mount_afpmount_smbfsmount_webdav等安装的卷也不会指向/dev中的设备)所以我有某种方式猜测它是否是本地的?

2 个答案:

答案 0 :(得分:2)

是否正常

$ mount

命令没有任何额外的参数告诉你你需要什么?

答案 1 :(得分:2)

在我的脑海中,我不相信它有一个跨平台的API。但是,您可以解析mount命令的输出:

~$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Users/nknight (hfs, local, nodev, nosuid, journaled, nobrowse)
没有参数的

mount对大多数* nix-ish系统的影响大致相同,但我不相信输出格式在任何地方都是标准化的。


但是,我鼓励你重新考虑你的方法。网络文件系统的重点是应用程序不应该关心它们。考虑发布另一个问题来解释你要通过这样做来实现的目标。有人可能会提供更优越,更通用的解决方案。