Grundproblem
Ich bin Suche nach einer Lösung für alle Anwendungen auf einem (Mac) OS X-System, das heißt alle Anwendungspakete registriert mit LaunchServices installiert aufzuzählen.Aufzählen alle installierten Anwendungen auf OS X
einfacher Ansatz, die nicht funktionierten
(Bitte beachten Sie: lsregister
unter /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
finden).
Zeit die Ausgabe von lsregister -dump | grep -E '^.*[ \\t]*path:[ \\t]+(\/.*)$' | grep -Eo '\/.*'
, ich bin mit der ein paar Probleme:
.app
Bündel mit Zeilenumbrüchen (\n
, die auf UNIX gültig ist) nicht korrekt gehandhabt werden (würde dieses Problem durch Schreiben fixierbar ein richtiger Parser)lsregister
behandelt nicht korrekt seltsamen Dateinamen (zB enthält die RTL mark).lsregister
scheint nur Dateien mit der RTL-Marke in ihrem Namen zu ignorieren. Wenn Sie möchten, können Sie eine Datei mit RTL in ihrem Namen erstellen, indem Sie den folgenden Befehl ausführen.python -c 'import shutil; shutil.copytree(u"/Applications/TextEdit.app", u"/Applications/ThisIsAWeird\u202EApp.app")'
Nachdem Sie das getan,
lsregister -dump | grep ThisIsAWeird
wird nicht es offenbaren. Wenn Sie jedoch mit der rechten Maustaste auf eine Textdatei klicken und zu "Öffnen mit" wechseln, werden LaunchServices und Finder diese Datei weiterhin unterstützen.
einfach alle Dateien in /Applications
Aufzählen und andere Verzeichnisse nicht funktionieren, weil Launchservice bewusst Anwendungspakete in beliebigen Ordnern und ich brauche auch diese Anwendungen.
Andere approch, die ich nicht
Anscheinend arbeiten habe, dann ist es eine private API-Funktion _LSFindApplications
aufgerufen, die genau das tut, was ich tun muß, aber ich kann es nicht zur Arbeit kommen und fanden keine inoffizielle Dokumentation im Internet. (Nachweis vorhanden: nm /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/LaunchServices | grep __LSFindApplications$
)
UPDATE: system_profiler Methode scheint auch nicht
Bis jetzt arbeite ich, obwohl die system_profiler
Methode wie @Anoop vorgeschlagen heute funktioniert, aber ich fand heraus, dass lsregister
noch nimmt mehr Binärdateien. Einige oder fehlen auf allen Maschinen, einige scheinen nur in system_profiler
fehlen, wenn Sie ein externes Volume mit einer anderen Installation von OS X montiert haben. Hier ist eine Liste, was in der Ausgabe von system_profiler
fehlt (aber in lsregister
vorhanden ist) auf einem meiner Maschinen:
/Applications/Automator.app/Contents/Resources/Application Stub.app
/Applications/Google Chrome.app/Contents/Versions/30.0.1599.69/Google Chrome Framework.framework/Resources/app_mode_loader.app
/Applications/Google Chrome.app/Contents/Versions/30.0.1599.69/Google Chrome Framework.framework/Resources/crash_report_sender.app
/Applications/Google Chrome.app/Contents/Versions/30.0.1599.69/Google Chrome Helper EH.app
/Applications/Google Chrome.app/Contents/Versions/30.0.1599.69/Google Chrome Helper NP.app
/Applications/Google Chrome.app/Contents/Versions/30.0.1599.69/Google Chrome Helper.app
/System/Library/CoreServices/AddPrinter.app
/System/Library/CoreServices/AirPlayUIAgent.app
/System/Library/CoreServices/AppleFileServer.app
/System/Library/CoreServices/AppleGraphicsWarning.app
/System/Library/CoreServices/AppleScript Runner.app
/System/Library/CoreServices/AppleScript Utility.app
/System/Library/CoreServices/CalendarFileHandler.app
/System/Library/CoreServices/Certificate Assistant.app
/System/Library/CoreServices/CoreLocationAgent.app
/System/Library/CoreServices/CoreServicesUIAgent.app
/System/Library/CoreServices/CoreTypes.bundle
/System/Library/CoreServices/Database Events.app
/System/Library/CoreServices/DiskImageMounter.app
/System/Library/CoreServices/Expansion Slot Utility.app
/System/Library/CoreServices/File Sync.app
/System/Library/CoreServices/FileSyncAgent.app
/System/Library/CoreServices/Folder Actions Dispatcher.app
/System/Library/CoreServices/Folder Actions Setup.app
/System/Library/CoreServices/HelpViewer.app
/System/Library/CoreServices/Image Events.app
/System/Library/CoreServices/Install in Progress.app
/System/Library/CoreServices/Jar Launcher.app
/System/Library/CoreServices/Java Web Start.app
/System/Library/CoreServices/KeyboardSetupAssistant.app
/System/Library/CoreServices/Language Chooser.app
/System/Library/CoreServices/LocationMenu.app
/System/Library/CoreServices/MRTAgent.app
/System/Library/CoreServices/Memory Slot Utility.app
/System/Library/CoreServices/NetAuthAgent.app
/System/Library/CoreServices/Network Diagnostics.app
/System/Library/CoreServices/Network Setup Assistant.app
/System/Library/CoreServices/ODSAgent.app
/System/Library/CoreServices/Pass Viewer.app
/System/Library/CoreServices/Printer Setup Utility.app
/System/Library/CoreServices/RegisterPluginIMApp.app
/System/Library/CoreServices/Screen Sharing.app
/System/Library/CoreServices/SecurityAgent.app
/System/Library/CoreServices/SecurityFixer.app
/System/Library/CoreServices/SocialPushAgent.app
/System/Library/CoreServices/System Events.app
/System/Library/CoreServices/System Image Utility.app
/System/Library/CoreServices/SystemUIServer.app
/System/Library/CoreServices/Ticket Viewer.app
/System/Library/CoreServices/UniversalAccessControl.app
/System/Library/CoreServices/UnmountAssistantAgent.app
/System/Library/CoreServices/UserNotificationCenter.app
/System/Library/CoreServices/VoiceOver.app
/System/Library/CoreServices/ZoomWindow.app
/System/Library/CoreServices/backupd.bundle/Contents/Resources/TMLaunchAgent.app
/System/Library/CoreServices/loginwindow.app
/System/Library/CoreServices/rcd.app
/System/Library/Frameworks/PubSub.framework/Versions/A/Resources/PubSubAgent.app
/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuickLookUI.framework/Versions/A/Resources/QuickLookUIHelper.app
/System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/quicklookd.app
/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/Resources/DiskImages UI Agent.app
/System/Library/Services/AppleSpell.service
/System/Library/Services/ChineseTextConverterService.app
/System/Library/Services/ImageCaptureService.app
/System/Library/Services/OpenSpell.service
/System/Library/Services/SpeechService.service
/System/Library/SocialServices/Facebook.socialplugin
/System/Library/SocialServices/Twitter.socialplugin
/System/Library/SocialServices/Weibo.socialplugin
Ich weiß, das ist möglich, weil RCDefaultApp es tut, aber ich weiß auch nicht wie. – zneak