سؤال

أنا أبحث عن وسيلة للحصول على مسار .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

حظا طيبا وفقك الله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top