Obtenga la ruta del .dmg desde el punto de montaje
Pregunta
Estoy buscando una manera de obtener la ruta .dmg de una imagen de disco montada solo con su punto de montaje.
Quiero escribir un servicio Finder "simple" que expulse la imagen del disco y elimine el .dmg adjunto.La expulsión es trivial, pero no sé cómo descubrir la ruta del .dmg, dado solo el punto de montaje.
diskutil No parece saberlo o no lo dice.
Es para un script, por lo que se prefieren las sugerencias basadas en AppleScript o Shell.
Solución
Utilice hdiutil info
para obtener la información sobre las imágenes montados actualmente. Entonces
hdiutil detach /Mount/Point
utilizar para desmontar todos los sistemas de archivos, y separar la imagen.
Usted tendrá que analizar la salida de hdiutil info
para encontrar la imagen-camino correcto si se montan varias imágenes. Probablemente será más robusto para utilizar el formato de salida hdiutil info -plist
plist y ejecutar en que, por ejemplo, un script en Python con plistlib o un AppleScript usando el Property List Suite
de System Events
.
Aquí hay un script en Python rápida y sucia para darle una idea. Es fácil de explorar opciones utilizando el intérprete de 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
Otros consejos
Inicie Terminal, haga:
$ cd /Volumes
$ hdutil info
La ubicación de los archivos dmg sospechosos aparecerá en la ruta de la imagen
cd
a esa ubicación y haga:
$ ls filename
Desmontar el volumen en Finder y finalmente en Terminal:
$ rm filename
Buena suerte.