2009-12-22 1 views
14

Я ищу способ получить путь .dmg смонтированного образа диска только с его точкой монтирования.Получить путь .dmg от точки монтирования

Я хочу написать «простую» услугу Finder, которая выталкивает образ диска и удаляет сопровождающий .dmg. Выброс тривиален, но я не понимаю, как определить путь .dmg, учитывая только точку монтирования.

diskutil, похоже, не знает или не говорит.

Это для сценария, поэтому предложения AppleScript или оболочки предпочтительны.

+0

Я не думаю, что вы получите предложение AppleScript или оболочки, потому что для этого вам, вероятно, придется поговорить с драйвером или, по крайней мере, с его пользовательским агентом. –

+0

Я думал, что может быть что-то вроде hdiutil или diskutil, что может помочь, или, возможно, свойство Finder на смонтированных образах дисков. – wbg

ответ

15

Используйте hdiutil info, чтобы получить информацию о смонтированных изображениях. Затем используйте hdiutil detach /Mount/Point для демонтажа всех файловых систем и отсоединения изображения.

Вам необходимо проанализировать вывод с hdiutil info, чтобы найти правильный путь изображения, если установлено несколько изображений. Вероятно, будет более надежно использовать формат вывода plist hdiutil info -plist и запустить его, скажем, в сценарии python с plistlib или AppleScript, используя Property List Suite от System Events.

Вот вам быстрый и грязный скрипт python, который даст вам представление. Это легко изучить возможности использования интерпретатора Python:

>>> import plistlib 
>>> from subprocess import Popen, PIPE 
>>> output = Popen(["hdiutil", "info", "-plist"], stdout=PIPE).communicate()[0] 
>>> pl = plistlib.readPlistFromString(output) 
>>> for image in pl['images']: 
... for se in image['system-entities']: 
...  if se.get('mount-point') == '/Volumes/blah': 
...   print image['image-path'] 
/Path/To/blah.dmg 
+0

Это не поможет мне уничтожить .dmg. – wbg

+0

Извините, пропустил этот момент. См. Обновленный ответ. –

+0

Блестящий! hdiutil - это то, что я ищу! – wbg

3

Start Terminal, сделайте следующее:

$ cd /Volumes 
$ hdutil info 

Расположение подозреваемых DMG-файлы будут отображаться в изображении тропу

cd к тому, что место и делать:

$ ls filename 

Отключить объем в Finder и, наконец, в Терминале:

$ rm filename 

Удачи.

 Смежные вопросы

  • Нет связанных вопросов^_^