문제

마운트 포인트만으로 마운트 디스크 이미지의 .dmg 경로를 얻는 방법을 찾고 있습니다.

디스크 이미지를 꺼내고 첨부 된 .dmg를 버리는 "간단한"파인더 서비스를 작성하고 싶습니다. 배출은 사소하지만 마운트 포인트 만 주어지면 .dmg의 경로를 알아내는 방법에 대해서는 상실합니다.

Diskutil 알지 못하거나 말하지 않는 것 같습니다.

스크립트를위한 것이므로 사과 스크립트 또는 쉘 기반 제안이 선호됩니다.

도움이 되었습니까?

해결책

사용 hdiutil info 현재 장착 된 이미지에 대한 정보를 얻으려면 그런 다음 사용하십시오 hdiutil detach /Mount/Point 모든 파일 시스템을 분리하고 이미지를 분리하려면.

출력을 구문 분석해야합니다 hdiutil info 여러 이미지가 장착 된 경우 올바른 이미지 경로를 찾으십시오. Plist 출력 형식을 사용하는 것이 더 강력 할 것입니다. hdiutil info -plist 그리고 그것을 파이썬 스크립트로 실행하십시오. plistlib 또는 Property List Suite ~에서 System Events.

다음은 아이디어를 제공하는 빠르고 더러운 파이썬 스크립트입니다. 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

다른 팁

터미널 시작, do :

$ cd /Volumes
$ hdutil info

의심되는 DMG-Files의 위치는 이미지 경로 아래에 나타납니다.

cd 그 위치에 :

$ ls filename

Finder에서 볼륨을 세우고 마지막으로 터미널에서 :

$ rm filename

행운을 빕니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top