2009-12-22 6 views
14

Estoy buscando una forma de obtener la ruta de acceso .dmg de una imagen de disco montada con solo su punto de montaje.Obtener la ruta de la .dmg desde el punto de montaje

Quiero escribir un buscador de "simple" que expulsa la imagen de disco y destroza el dmg acompaña. La expulsión es trivial, pero no sé cómo encontrar el camino de la .dmg, dado el punto de montaje.

diskutil Parece que no sabe o no está diciendo.

Es para un script, por lo que se prefieren las sugerencias basadas en shell o AppleScript.

+0

No creo que vayas a obtener una sugerencia AppleScript o basada en shell porque probablemente tendrás que hablar con el controlador, o al menos con su agente de usuario, para eso. –

+0

Pensé que podría haber algo como hdiutil o diskutil que podría ayudar, o tal vez una propiedad de Finder en las imágenes de disco montadas. – wbg

Respuesta

15

Utilice hdiutil info para obtener información acerca de las imágenes montadas actualmente. Luego, use hdiutil detach /Mount/Point para desmontar todos los sistemas de archivos y separar la imagen.

Deberá analizar la salida de hdiutil info para encontrar la ruta de la imagen correcta si se montan varias imágenes. Probablemente sea más robusto usar el formato de salida plist hdiutil info -plist y ejecutarlo en, digamos, una secuencia de comandos python con plistlib o un AppleScript usando Property List Suite desde System Events.

Aquí hay una secuencia de comandos python rápida y sucia para hacerte una idea. Es fácil de explorar las opciones usando 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 
+0

Eso no me ayudará a tirar basura al .dmg, sin embargo. – wbg

+0

Lo sentimos, perdimos ese punto. Ver respuesta actualizada. –

+0

¡Brillante! ¡la información de hdiutil es justo lo que estoy buscando! – wbg

3

de inicio del terminal,:

$ cd /Volumes 
$ hdutil info 

El lugar de los presuntos DMG-archivos aparecerá bajo la imagen de la ruta

cd a ese ubicación, y hacer:

$ ls filename 

Desmontar el volumen en Finder, y finalmente en la Terminal:

$ rm filename 

Buena suerte.

Cuestiones relacionadas