Как получить полный список всех установленных приложений?


15

Используя OSX 10.8.4., Мне трудно найти полный список всех программных приложений, установленных на моем Mac. Конечно, Launchpadотображается только список тех, у кого был создан ярлык приложения, за исключением тех, которые этого не сделали. Я также пытался удерживать Optionклавишу в меню Apple, чтобы перейти About This Macк ней System Information, Software-->Installationsно это был еще не полный список.

Как получить полный список всех установленных приложений?


1
Проблема с OS X заключается в том, что вы, как правило, не «устанавливаете» большинство приложений, кроме приложений из Mac App Store или нескольких других компаний, таких как Adobe или Microsoft. Большинство приложений - это просто вещи, которые вы загружаете в файл ZIP или DMG и перетаскиваете в папку «Приложения». В этой папке «Приложения» приложения почти всегда находятся и они будут заполнены списком.
Дэвид

8
Здесь есть небольшая сложность в том, что вы спрашиваете: что такое «приложение»? Вы ищете все .appпакеты в вашей системе? Или вы хотите список всего, что может выполнить пользователь?
Ян С.

2
Если бы вы добавили, что вы планируете делать с этим списком приложений, как только он у вас появится, мне было бы любопытно посмотреть, будут ли ответы лучше отвечать вашим потребностям, поскольку идея приложения довольно размыта и открыта для интерпретации.
bmike

1
Я не OP, но мое определение будет список всего, что будет работать в качестве аргумента open -a.
Марк Рид

Ответы:


19

Попробуйте: Об этом Mac> Подробнее> Системный отчет> Программное обеспечение

,

введите описание изображения здесь

Не только «Установки» ... но и другие могут дать вам некоторую информацию.


3
Для меня вкладка «Приложения» имела лучший список, который появлялся за секунду.
ma11hew28

14

Если вы просто ищете список приложений с расширением .app, то запустите Terminal и запустите

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

(в конечном итоге) даст вам довольно полный список приложений, записанных в текстовый файл с именем «application.txt» в вашей домашней папке.


это покажет рекурсивно все пакеты, используемые внутренне установленными приложениями, и это, вероятно, не то, что хочет опера. поэтому вместо того, чтобы считать Xcode.app«одно приложение, которое я установил», findвернется 242 (при моей установке) под ним. даже простое ls /Applicationsдаст более точное число с точки зрения того, что действительно установлено.
minusf

12

Из командной строки попробуйте system_profiler (8) :

> system_profiler SPApplicationsDataType

Вот фрагмент кода 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_profilerтакже может выводить в XML (формат plist (5) ), который может быть легко проанализирован. Для этого используйте -xmlпараметр. Вот обновленный фрагмент Safari в этом формате:

<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>

Что за условие здесь? Если я просто перетащу .appкаталог в /Applications, что должно произойти, чтобы system_profilerоно увидело?
Ghoti

1
Индексирование @ghoti spotlightдолжно быть включено, а центр внимания должен был обнаружить новое приложение и проиндексировать его. system_profilerвозвращает пустой результат, если индексация отключена.
minusf

3

Эти команды перечислили те же приложения в моей установке:

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

У обоих отсутствовали некоторые пакеты приложений внутри пакетов приложений и инфраструктуры.

lsregister включает в себя больше приложений в других пакетах приложений, но также включает удаленные приложения и приложения на томе Time Machine:

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

Это находит больше приложений внутри других пакетов, но не соответствует приложениям, которые не имеют .appрасширения:

sudo find -x / -type d -name \*.app

1

Из вопроса ОП неясно, ищет ли он простой ответ или сложный ответ. Способ поместить почти все приложения в удобный список:

  1. Открытый терминал
  2. Введите ls /Applicationsдля простого алфавитного списка, или ls -l /Applicationsдля получения дополнительной информации:

    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
    

в то время как это дает приемлемый приблизительный показатель, он пропустит, например, все системные утилиты Utilities/и все другие программы, установленные в подпапку (например Intel Power Gadget)
minusf

1

Откройте терминал и напишите следующий sudo find / -iname *.app комманд. Это тот же ответ, что и «binarybob», но с помощью sudo вы можете получить доступ и перечислить некоторые папки, которые вы не можете сделать без прав администратора. Будет запрошен ваш пароль, и вы получите преимущества «прав» sudo, если ваша учетная запись является учетной записью администратора.

Например, с помощью find / -iname *.appя получаю 430 строк, а с помощью sudo find / -iname *.appя получаю 432 строки. Это пример на моем компьютере, и, возможно, результат будет одинаковым для вас.


Однако это также будет
создавать

1

Используя plistbuddy, вы можете получить некоторую информацию и проанализировать ее на предмет того, что вам нужно.

Это позволит получить все установленные приложения / утилиты с их номерами версий и поместить их в текстовый файл для вас.

#!/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

Как запустить это? Пожалуйста, добавьте больше шагов в вашем ответе.
Хеманг

0
  1. LaunchPad должен показывать все приложения в / Applications; им не нужно создавать ярлык, чтобы появиться там.
  2. Вы можете посмотреть прямо в / Приложения и / Приложения / Утилиты.
  3. В Системной информации есть раздел «Программное обеспечение»> «Приложения» на боковой панели, который покажет еще более полный список, включая приложения, хранящиеся в неожиданных местах (я думаю, что для их поиска используется Spotlight).

0

Простой ответ, который я только что создал из всех ответов выше.

ls /Applications > Desktop/applications.txt

Почему голосование против?
Vinozio

Приложения могут быть установлены вне папки / Applications.
user151019

это дубликат
историческая отметка

0

Я знаю, что вопрос задавался 4 года назад, было дано несколько ответов, каждый пытается решить проблему по-своему (через GUI или CLI), но ни один из них не является полным.

Вчера в моей компании каждого пользователя macOS попросили предоставить:

список всех приложений, установленных в их системах OS X / macOS для аудита программного обеспечения

Чтобы процесс был последовательным, простым и завершенным, все выполняли одну и ту же команду в терминале.

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

Приведенная выше команда открывает 2 файла в текстовом редакторе по умолчанию со списком всех установленных приложений, а также списком всех « исполняемых файлов », которые также следует рассматривать как приложения.

Я думаю, что это обеспечивает наиболее полное решение для данной проблемы. Это быстро и делает работу.

Чтобы дать более подробный ответ, давайте, наконец, пройдемся по всем командам и аргументам, чтобы все было понятно тем, кто напуган использованием терминала.

Команда lsпросто перечисляет содержимое каталога. В этом случае, /Applicationsа также /usr/local/bin- это место предназначено для программ, которые может запускать обычный пользователь.

Аргумент -lотображает список в «длинном формате». Подробнее о «длинном формате» можно узнать здесь .

Далее у нас есть символ трубы | . Он разделяет две программы в командной строке, чтобы перечисленные выходные данные можно было открыть в другой программе. В этом случае используется openкоманда.

Команда openпросто открывает файлы и каталоги, но в сочетании с -ef:

  • -e Вызывает открытие файла /Applications/TextEdit
  • -f Считывает ввод из стандартного ввода и открывает результаты в текстовом редакторе по умолчанию.

Наконец, комбинация обоих списков склеена, &&что позволяет выполнять несколько команд одновременно, так что в итоге мы получим команду терминала «одна строка».

введите описание изображения здесь

Надеюсь, что это помогает и дает подробное объяснение.


Приложения d Я не должен быть в / Приложения
user151019

0

Попробуйте запустить это в Терминале (/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

Это поисковый запрос, который выполняет поиск элементов с заданным предикатом метаданных kMDItemContentType == "com.apple.application-bundle", он предоставит вам полный список всех пакетов приложений ( .app) в заданной области, или, если -onlyinне указан, будет иметь глобальный масштаб (включая внешние / сетевые диски). используемый.




-4

Папка приложения .. Просто зайдите в папку приложения


3
Приложения могут быть установлены вне папки «Приложения».
Ян С.

-5

поиск> приложений. просто как тот


Настолько просто, что пропускаются любые приложения, не установленные в /Applications...
nohillside
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.