Получить путь.dmg от точки монтирования

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

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

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

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

2 ответа

Решение

Использование 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

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

$ cd /Volumes
$ hdutil info

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

cd в это место и сделайте:

$ ls filename

Размонтируйте том в Finder и, наконец, в Terminal:

$ rm filename

Удачи.

Другие вопросы по тегам