Получить путь к .dmg из точки монтирования - PullRequest
14 голосов
/ 23 декабря 2009

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

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

diskutil , кажется, не знает или не говорит.

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

Ответы [ 2 ]

16 голосов
/ 23 декабря 2009

Используйте 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
4 голосов
/ 16 июня 2014

Запустите терминал, сделайте:

$ cd /Volumes
$ hdutil info

Местоположение подозрительных dmg-файлов будет отображаться под image-path

cd до этого места и выполните:

$ ls filename

Размонтирование тома в Finder и, наконец, в Терминале:

$ rm filename

Удачи.

...