1

我有一个bash处理 Mac OS X 10.5 和 10.6 中文件的脚本。它现在需要确定文件是在本地卷上还是在远程 AFP 卷上。所有挂载点都在/VolumesMac OS X 上,但我看不到本地卷和远程卷之间的任何区别,至少在ls -al(引导卷除外,它是指向 的符号链接/)。

有没有办法以编程方式,特别是。可以从bash脚本中轻松调用的东西(我真的不想用 OS X 特定的 API 在 C/Obj-C 中重写它,除非绝对必要),以确定挂载点的来源或类型?即使卷映射到什么设备(假设使用mount_afp, mount_smbfs,mount_webdav等安装的卷不会指向 中的设备/dev)所以我有一些方法可以猜测它是否是本地的?

4

2 回答 2

2

是否平原

$ mount

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

于 2010-11-29T23:08:45.027 回答
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 系统的影响大致相同,尽管我不相信输出格式在任何地方都是标准化的。


但是,我鼓励您重新考虑您的方法。网络文件系统的全部意义在于应用程序不应该关心它们。考虑发布另一个问题来解释您通过这样做来完成什么。有人可能会提供一个更优越、更通用的解决方案。

于 2010-11-29T23:09:08.300 回答