احصل على مسار .DMG من نقطة جبل
سؤال
أنا أبحث عن وسيلة للحصول على مسار .DMG لصورة القرص المثبتة مع نقطة التثبيت فقط.
أريد أن أكتب خدمة Finder "البسيطة" التي تطرد صورة القرص وتطهير .DMG المصاحب. الإخراج تافهة ، لكنني في حيرة بشأن كيفية اكتشاف مسار .DMG ، بالنظر إلى نقطة التثبيت فقط.
قرص لا يبدو أنه يعرف أو لا يقول.
إنه مخصص للنص ، لذلك يتم تفضيل الاقتراحات المستندة إلى Applescript أو shell.
المحلول
يستخدم hdiutil info
للحصول على المعلومات حول الصور المثبتة حاليًا. ثم استخدام hdiutil detach /Mount/Point
لفك جميع أنظمة الملفات ، وفصل الصورة.
ستحتاج إلى تحليل الإخراج من hdiutil info
للعثور على مسار الصورة المناسب إذا تم تركيب صور متعددة. من المحتمل أن يكون استخدام تنسيق إخراج PLIST أكثر قوة hdiutil info -plist
وتشغيل ذلك ، على سبيل المثال ، نص بيثون مع Plistlib أو applescript باستخدام Property List Suite
من عند System Events
.
إليك نص Python سريع وقذرة لإعطائك فكرة. من السهل استكشاف الخيارات باستخدام مترجم 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
نصائح أخرى
ابدأ المحطة ، افعل:
$ cd /Volumes
$ hdutil info
سيظهر موقع ملفات DMG المشتبه فيه تحت مسار الصورة
cd
إلى هذا الموقع ، وافعل:
$ ls filename
حجم unmount في Finder ، وأخيرا في المحطة:
$ rm filename
حظا طيبا وفقك الله.