Wylicz wszystkie zainstalowane aplikacje w systemie OS X
Szukam rozwiązania do wyliczenia wszystkich aplikacji zainstalowanych w systemie (Mac) OS X, tj. Wszystkich pakietów aplikacji zarejestrowanych za pomocąUsługi uruchamiania.
Proste podejście, które nie zadziałało(Proszę zanotować:lsregister
można znaleźć pod/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
).
Obecnie używam wyjścialsregister -dump | grep -E '^.*[ \\t]*path:[ \\t]+(\/.*)$' | grep -Eo '\/.*'
, który ma kilka problemów:
.app
pakiety z nowymi znakami (\n
, która jest poprawna w systemie UNIX), nie są obsługiwane poprawnie (ten problem można naprawić, pisząc odpowiedni parser)lsregister
nie obsługuje poprawnie dziwnej nazwy pliku (np. zawierającej znakZnak RTL).lsregister
po prostu wydaje się ignorować pliki ze znakiem RTL w ich nazwie. Jeśli chcesz, możesz utworzyć plik z RTL w jego nazwie, uruchamiając następujące polecenie.
python -c 'import shutil; shutil.copytree(u"/Applications/TextEdit.app", u"/Applications/ThisIsAWeird\u202EApp.app")'
Po wykonaniu tegolsregister -dump | grep ThisIsAWeird
będzienie ujawnij to. Ale gdy klikniesz prawym przyciskiem myszy na plik tekstowy i przejdziesz do „Otwórz za pomocą”, to LaunchServices i Finder nadal obsługują ten plik.
Proste wyliczanie wszystkich plików/Applications
i inne katalogi nie działają, ponieważ LaunchServices wie o pakietach aplikacji w dowolnych folderach i potrzebuję również tych aplikacji.
Najwyraźniej istnieje prywatna funkcja API o nazwie_LSFindApplications
co robi dokładnie to, co muszę zrobić, ale nie mogę go uruchomić i nie znalazłem żadnej nieoficjalnej dokumentacji w Internecie. (dowód, że istnieje:nm /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/LaunchServices | grep __LSFindApplications$
)
Do tej pory myślałemsystem_profiler
metoda sugerowana przez @Anoop działa, ale dzisiaj to odkryłemlsregister
nadal pobiera więcej plików binarnych. Niektóre lub brakujące na wszystkich maszynach, niektóre brakuje tylkosystem_profiler
kiedy zamontowałeś zewnętrzny wolumin z inną instalacją OS X. Oto lista brakujących danych wyjściowychsystem_profiler
(ale jest obecny wlsregister
) na jednej z moich maszyn:
/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