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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top