Jak uzyskać pełną listę wszystkich zainstalowanych aplikacji?

15

W systemie OSX 10.8.4 trudno mi znaleźć pełną listę wszystkich aplikacji zainstalowanych na komputerze Mac. Oczywiście, Launchpadtylko pokazuje listę tych, które mają utworzony skrót do aplikacji, z wyłączeniem tych, które nie mają. Próbowałem też przytrzymanie Optionklawisza podczas gdy w menu Apple, aby zmiany About This Macdo System Information, potem Software-->Installationsjednak, że nadal nie była kompletna lista.

Jak uzyskać pełną listę wszystkich zainstalowanych aplikacji?

amfibia
źródło
1
W systemie OS X na ogół nie instaluje się większości aplikacji poza aplikacjami z Mac App Store lub kilkoma innymi firmami takimi jak Adobe lub Microsoft. Większość aplikacji to tylko rzeczy, które pobierasz w pliku ZIP lub DMG i przeciągasz / upuszczasz do folderu Aplikacje. W folderze Aplikacje prawie zawsze znajdują się aplikacje i byłby tak kompletny, jak to tylko możliwe.
David,
8
To, o co tu pytasz, jest subtelnie skomplikowane i brzmi: czym jest „aplikacja”? Czy szukasz wszystkich .apppakietów w swoim systemie? A może chcesz coś, co użytkownik może wykonać?
Ian C.
2
Jeśli chcesz dodać to, co planujesz zrobić z tą listą aplikacji, gdy już ją masz, jestem ciekawy, czy odpowiedzi lepiej trafiłyby w twoje potrzeby, ponieważ idea aplikacji jest dość niewyraźna i otwarta na interpretację.
bmike
1
Nie jestem OP, ale moja definicja byłaby listą wszystkiego, co będzie działało jako argument open -a.
Mark Reed,

Odpowiedzi:

19

Wypróbuj: Informacje o tym komputerze Mac> Więcej informacji> Raport systemu> Oprogramowanie

.

wprowadź opis zdjęcia tutaj

Nie tylko „instalacje” ... ale także inne mogą dać ci trochę informacji.

GEdgar
źródło
3
Dla mnie karta „Aplikacje” zawierała lepszą listę, która zajęła sekundę.
ma11hew28,
14

Jeśli szukasz tylko listy aplikacji z rozszerzeniem .app, uruchom terminal i uruchom go

   find / -iname *.app > ~/applications.txt

(ostatecznie) da ci dość obszerną listę aplikacji zapisanych w pliku tekstowym o nazwie „applications.txt” w twoim folderze domowym.

binarybob
źródło
pokaże rekurencyjnie wszystkie pakiety używane wewnętrznie przez zainstalowane aplikacje i prawdopodobnie nie tego chce operacja. więc zamiast liczyć się Xcode.appjako „jedna aplikacja, którą zainstalowałem”, findzwróci pod nią 242 (przy mojej instalacji). nawet prosty ls /Applicationspoda dokładniejszą liczbę pod względem tego, co naprawdę jest zainstalowane.
minusf
12

W wierszu komend wypróbuj system_profiler (8) :

> system_profiler SPApplicationsDataType

Oto fragment pokazujący Safari:

Safari:

  Version: 7.0.2
  Obtained from: Apple
  Last Modified: 2/25/14, 3:44 PM
  Kind: Intel
  64-Bit (Intel): Yes
  Signed by: Software Signing, Apple Code Signing Certification Authority, Apple Root CA
  Location: /Applications/Safari.app
  Get Info String: 7.0.2, Copyright © 2003-2014 Apple Inc.

system_profilermoże również wyprowadzać dane do formatu XML (format plist (5) ), które można łatwo przeanalizować. W tym celu użyj -xmlparametru. Oto zaktualizowany fragment Safari w tym formacie:

<dict>
    <key>_name</key>
    <string>Safari</string>
    <key>has64BitIntelCode</key>
    <string>yes</string>
    <key>info</key>
    <string>10.0, Copyright © 2003-2016 Apple Inc.</string>
    <key>lastModified</key>
    <date>2016-06-30T22:14:21Z</date>
    <key>obtained_from</key>
    <string>apple</string>
    <key>path</key>
    <string>/Applications/Safari.app</string>
    <key>runtime_environment</key>
    <string>arch_x86</string>
    <key>signed_by</key>
    <array>
        <string>Software Signing</string>
        <string>Apple Code Signing Certification Authority</string>
        <string>Apple Root CA</string>
    </array>
    <key>version</key>
    <string>10.0</string>
</dict>
NuSkooler
źródło
Jakie jest tutaj zastrzeżenie? Jeśli po prostu przeciągnę .appkatalog do /Applications, co się stanie, aby system_profilergo zobaczyć?
ghoti
1
spotlightIndeksowanie @ghoti musi być włączone, a także wyróżnienie musi wykryć nową aplikację i zindeksować ją. system_profilerzwraca wynik opróżnienia, jeśli indeksowanie jest wyłączone.
minusf
3

Te polecenia wymieniły te same aplikacje w mojej instalacji:

mdfind kMDItemContentTypeTree=com.apple.application-bundle -onlyin /
system_profiler SPApplicationsDataType|sed -n 's/^ *Location: \(.*\)/\1/p'

W obu brakowało niektórych pakietów aplikacji wewnątrz pakietów aplikacji i frameworka.

lsregister zawiera więcej aplikacji w innych pakietach aplikacji, ale obejmuje także aplikacje, które zostały usunięte i aplikacje na woluminie Time Machine:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump|awk '/^bundle\tid/{getline;sub(/^\tpath: */,"");print}'

Znajduje więcej aplikacji w innych pakietach, ale nie pasuje do aplikacji, które nie mają .approzszerzenia:

sudo find -x / -type d -name \*.app
Lri
źródło
1

Z pytania PO nie jest jasne, czy szuka on łatwej, czy trudnej odpowiedzi. Sposobem umieszczenia prawie wszystkich aplikacji na wygodnej liście byłoby:

  1. Otwórz terminal
  2. Wprowadź ls /Applicationsprostą listę alfabetyczną lub ls -l /Applicationswięcej informacji:

    Ewans-Retina-MacBook-Pro:Applications ewan$ ls /Applications
    
    1000 OpenType Fonts.app        Garmin MapInstall.app    ScreenFlow.app
    1Password.app                  Garmin MapManager.app    Sequel Pro.app
    A Better Finder Rename 8.app   Garmin WebUpdater.app    Server.app
    
Ewan Makepeace
źródło
chociaż daje to akceptowalną liczbę ballpark, będzie brakowało na przykład wszystkich narzędzi systemowych poniżej Utilities/i wszystkich innych programów zainstalowanych w podfolderze (np. Intel Power Gadget)
minusf
1

Otwórz terminal i napisz następujący komendę sudo find / -iname *.app Jest to ta sama odpowiedź, co „binarybob”, ale dzięki sudo możesz uzyskać dostęp do listy folderów, których nie możesz zrobić bez uprawnień administratora. Zostaniesz poproszony o podanie hasła i otrzymasz korzyści z „praw” sudo, jeśli twoje konto jest kontem administratora.

Na przykład, find / -iname *.appotrzymuję 430 linii, a przy sudo find / -iname *.app432 liniach. Jest to przykład na moim komputerze i być może wynik będzie taki sam, niezależnie od tego, jaki jest dla ciebie dowódca.

Thibault
źródło
Jednak kopie zapasowe zostaną również utworzone, jeśli dyski te zostaną zamontowane, np. Dyski
TimeMachine
1

Korzystając z Plistbuddy, możesz uzyskać pewne informacje i przeanalizować je pod kątem potrzebnych rzeczy.

Spowoduje to pobranie wszystkich zainstalowanych aplikacji / narzędzi wraz z ich numerami wersji i umieszczenie go w pliku tekstowym.

#!/bin/sh
(
    for i in /Applications/*.app
     do
         Printf "$i \t" | cut -c15-1000
      /usr/libexec/plistbuddy -c Print:CFBundleShortVersionString: "$i"/Contents/info.plist
        done

    for u in /Applications/Utilities/*.app
     do
         Printf "$u \t" | cut -c25-1000
      /usr/libexec/plistbuddy -c Print:CFBundleShortVersionString: "$u"/Contents/info.plist
    done
)   >${USER}Applist.txt
Chris Edwards
źródło
Jak to uruchomić? Dodaj więcej kroków w swojej odpowiedzi.
Hemang,
0
  1. LaunchPad powinien pokazywać wszystkie aplikacje w / Applications; nie muszą mieć utworzonego „skrótu”, aby się tam pojawić.
  2. Możesz szukać bezpośrednio w / Aplikacje i / Aplikacje / Narzędzia.
  3. Informacje o systemie ma sekcję Oprogramowanie> Aplikacje na pasku bocznym, która pokaże jeszcze bardziej kompletną listę, w tym aplikacje przechowywane w nieoczekiwanych lokalizacjach (myślę, że do ich znalezienia używa Spotlight).
Gordon Davisson
źródło
0

Prosta odpowiedź Właśnie utworzyłem ze wszystkich powyższych odpowiedzi.

ls /Applications > Desktop/applications.txt
Vinozio
źródło
Dlaczego głosowanie w dół?
Vinozio,
Aplikacje można instalować poza folderem / Applications.
user151019
to duplikat
historystamp
0

Wiem, że pytanie zostało zadane 4 lata temu, udzielono kilku odpowiedzi, każda próbuje rozwiązać problem inaczej (za pomocą GUI lub CLI), ale żadna z nich nie jest kompletna.

Wczoraj w mojej firmie każdy użytkownik systemu macOS został poproszony o podanie:

lista wszystkich aplikacji zainstalowanych w systemach OS X / macOS do audytu oprogramowania

Aby proces był spójny, łatwy i kompletny, wszyscy uruchomili to samo polecenie w terminalu

ls -l /Applications | open -ef &&  ls -l /usr/local/bin | open -ef

Powyższe polecenie otwiera 2 pliki w domyślnym edytorze tekstu z listą wszystkich zainstalowanych aplikacji, a także listą wszystkich „ plików wykonywalnych ”, które również należy uznać za aplikacje.

Myślę, że zapewnia to najbardziej kompleksowe rozwiązanie danego problemu. Jest szybki i działa.

Aby udzielić bardziej szczegółowej odpowiedzi, w końcu przejrzyjmy wszystkie polecenia i argumenty, aby wszystko było jasne dla tych, którzy boją się używania terminala.

lsPolecenie po prostu listę zawartości katalogu. W tym przypadku /Applicationsrównież /usr/local/bin- ta lokalizacja dotyczy programów, które może uruchomić normalny użytkownik.

Argument -lwyświetla listę w „długim formacie”. Więcej informacji o „długim formacie” można znaleźć tutaj .

Następnie mamy symbol rury | . Oddziela dwa programy w wierszu poleceń, dzięki czemu wymienione dane wyjściowe można następnie otworzyć w innym programie. W tym przypadku za pomocą openpolecenia.

openPolecenie po prostu otwiera pliki i katalogi, ale w połączeniu z -ef:

  • -e Powoduje otwarcie pliku za pomocą /Applications/TextEdit
  • -f Odczytuje dane ze standardowego wejścia i otwiera wyniki w domyślnym edytorze tekstu.

Na koniec kombinacja obu list jest sklejona, &&co pozwala na wykonywanie wielu poleceń jednocześnie, więc w końcu otrzymujemy polecenie terminala „jeden wiersz”.

wprowadź opis zdjęcia tutaj

Mam nadzieję, że to pomoże i zapewni szczegółowe wyjaśnienie.

Matt Komarnicki
źródło
Aplikacje d Nie muszę być w / application
user151019
0

Spróbuj uruchomić to w terminalu (/Applications/Utilities/Terminal.app):

mdfind "kMDItemContentType == 'com.apple.application-bundle'" -onlyin $scope

# $scope is your search range
# this command will only search all the applications under the given scope if -onlyin is specified

Jest to zapytanie, które wyszukuje elementy z podanym predykatem metadanych kMDItemContentType == "com.apple.application-bundle", daje pełną listę wszystkich pakietów aplikacji ( .app) w danym zakresie, a jeśli -onlyinnie zostanie podana, globalna skala (w tym dyski zewnętrzne / sieciowe) będzie używany.

AgentBilly
źródło
-2

Idź do FINDER

Kliknij APLIKACJE

użytkownik2506231
źródło
3
Aplikacje można instalować poza folderem / Applications.
Szkot
-4

Folder aplikacji. Po prostu przejdź do folderu aplikacji

kuk
źródło
3
Aplikacje można instalować poza folderem Aplikacje.
Ian C.
-5

wyszukiwarka> aplikacje. proste

vinay
źródło
Tak proste, że nie trafi żadnych wniosków nie zainstalowanych w /Applications...
nohillside