Есть ли способ определить тип точки монтирования? - PullRequest
1 голос
/ 30 ноября 2010

У меня есть скрипт bash, который работает с файлами в Mac OS X 10.5 и 10.6.Теперь необходимо определить, находятся ли файлы на локальном томе или на удаленном томе AFP.Все точки монтирования указаны в /Volumes на Mac OS X, но я не вижу никакой разницы между локальными и удаленными томами, по крайней мере с ls -al (за исключением загрузочного тома, который является символической ссылкой на /).

Есть ли способ программно, особенночто-то, что можно легко вызвать из скрипта bashдействительно не хочу переписывать это в C / Obj-C с API-интерфейсами, специфичными для OS X, если это не является абсолютно необходимым), чтобы определить источник или тип точки монтирования?Даже то, к какому устройству подключается том (если тома подключены с помощью mount_afp, mount_smbfs, mount_webdav и т. Д., Не будет указывать на устройство в /dev), поэтому у меня есть some способ угадать, локально это или нет?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Сверх того, я не верю, что есть 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, хотя я не верю, что формат выводастандартизирован везде.


Однако я бы рекомендовал вам пересмотреть свой подход.Весь смысл сетевых файловых систем в том, что приложения не должны заботиться о них.Попробуйте опубликовать еще один вопрос, объясняющий, чего вы пытаетесь достичь, делая это.Кто-то может предложить превосходное и более обобщенное решение.

2 голосов
/ 30 ноября 2010

Может ли простая команда

$ mount

без каких-либо дополнительных аргументов сказать, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...