Kann jemand eine clevere Methode vorschlagen, um alle verschlüsselten DMGs zu identifizieren?
Meine einzige Idee ist ziemlich kompliziert. Verwenden Sie mdfind '(kMDItemFSName=*.dmg)'
und testen Sie die Antwort von hdiutil imageinfo
und protokollieren Sie das Ergebnis derjenigen, die nach einem Kennwort fragen. Dank der Antwort und der Kommentare führt der folgende Befehl den gesamten Befehl dmg über hdiutil aus, aber ich kann nicht herausfinden, wie diejenigen identifiziert werden, die einen Fehler verursachen. Irgendwelche Ideen?
mdfind -0 "kMDItemFSName=*.dmg" |xargs -0 -I{} -L 1 hdiutil imageinfo {}
macos
command-line
spotlight
dmg
Jake der Hund
quelle
quelle
.dmg
Dateien, zB mitls -l@
möglicherweise zeigtcom.apple.metadata:kMDItemDownloadedDate
es keine istcom.apple.metadata:kMDItemEncrypted
. Mit können Sie die Metadatenattribute einer Datei anzeigenmdls
. Daherhdiutil imageinfo
ist die Verwendung wahrscheinlich die einzige Möglichkeit, direkt aus der Datei selbst zu gelangen. Sie könnten es skripten und die Ausgabehdiutil imageinfo
angrep
weiterleiten usw. und weiter verarbeiten, so dass die endgültige Ausgabe eine Liste von Dateien sein kann, die verschlüsselt sind usw. Es hängt alles davon ab, was Sie wirklich erreichen wollen.Antworten:
Gegenwärtig habe ich auf meiner lokalen Festplatte 88 .dmg- Dateien, von denen drei verschlüsselt sind. Bevor ich die Befehlszeile unten ausgeführt habe, wusste ich nicht, wie viele verschlüsselte .dmg- Dateien ich hatte und wo sie sich befanden. Die folgende Befehlszeile kann zwar kompliziert aussehen, sollte jedoch wie angekündigt funktionieren.
Öffnen Sie das Terminal, kopieren Sie die gesamte Befehlszeile darunter und fügen Sie sie so wie sie ist in das Terminal ein. Drücken Sie dann die Eingabetaste .
Dadurch werden zwei Dateien erstellt, dmg_file_list und encrypted_dmg_file_list , und deren Inhalt wird an das Terminal ausgegeben. Die Dateien können auch in einem Texteditor geöffnet werden.
Die Dateien enthalten den vollständig qualifizierten Pfadnamen der .dmg- Dateien, gefolgt von einem Leerzeichen und entweder verschlüsselt: NEIN oder verschlüsselt: JA in der Datei dmg_file_list und nur den vollständig qualifizierten Pfadnamen der .dmg- Dateien, gefolgt von einem Leerzeichen und verschlüsselt: JA in Die Datei encrypted_dmg_file_list .
Anschließend können Sie die beiden mit dem Befehl erstellten Dateien manuell löschen, wenn Sie damit fertig sind.
Hinweis: Wenn die Befehlszeile ausgeführt wurde, kann es einen Moment dauern, bis der Inhalt der Datei encrypted_dmg_file_list verarbeitet und an das Terminal ausgegeben wurde . Es hängt davon ab, wie viele .dmg- Dateien es gibt.
Hier wird die vollständige Befehlszeile mit Zeilenfortsetzung angezeigt. Sie müssen also die gesamte Zeile kopieren und einfügen. (Sie können die Befehlszeile auch in diesem Format kopieren und einfügen.)
quelle
hdiutil
in Zukunft ändert. Auch wenn Sie verwenden>> dmg_file_list
, möchten Sie möglicherweise zuerst eine bereits vorhandene Datei entfernen (oder verwenden> dmg_file_list
).>>
war Tippfehler. Ich habe es korrigiert. Was das Greifen nach mehr angeht, als ich getan habe ... Nun, die Dinge ändern sich und der Code wird kaputt, aber er muss nur repariert werden. Was ich lieferte, war ein funktionierendes Beispiel für nur einen Weg, um das Ziel zu erreichen. Es ist nicht der einzige oder notwendigerweise der beste Weg, sondern nur ein Weg, der auf meinem System funktioniert und bei Bedarf von jedem angepasst werden kann, der es verwendet. Als Beispiel hätte ich es so schreiben können, dass die Datei encrypted_dmg_file_list nur den vollständig qualifizierten Pfadnamen hatte, da die Datei als verschlüsselt bezeichnet wird. Ich habe es nicht getan, weil es spät ist und ich müde bin. :)LSOpenURLsWithRole() failed with error -600 for the file /Users/user/encrypted_dmg_file_list.
irgendwelche Ideen?open
in der letzten Zeile durchcat
. Dadurch werden die verschlüsselten Volumes direkt in Terminal aufgelistet.cat
Vorschlag von patrix habe ich die Befehlszeile bearbeitet, da sie dann nicht davon abhängt, irgendwelche Änderungen von der Standardeinstellung mit Launch Services zu öffnen. Sie können die Dateien auch jederzeit manuell in einem Texteditor öffnen.Spotlight verfügt einfach nicht über ausreichende Metadaten, um die in einer DMG gespeicherten Dateisystemoptionen zu unterscheiden. Anders ausgedrückt ist es so, als würde man fragen, in welchen Pages-Dokumenten französische Wörter enthalten sind, indem man nur verwendet
mdls
. Die Daten für diese Suche sind nicht in Metadaten enthalten.Der richtige Befehl zum Überprüfen, ob eine bestimmte Bilddatei verschlüsselt ist, lautet
hdiutil isencrypted /path/to/dmg
Beispiel:
Ausgabe:
quelle
Eine Lösung mit
mdfind -0
undxargs
:quelle