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

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

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

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

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

Ответы

Ответ 1

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

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

Вот быстрый и грязный питон script, чтобы дать вам представление. Легко изучить параметры с помощью интерпретатора 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

Ответ 2

Запустить терминал, do:

$ cd /Volumes
$ hdutil info

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

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

$ ls filename

Отключите громкость в Finder и, наконец, в терминале:

$ rm filename

Удачи.