Як отримати повний перелік усіх встановлених програм?


15

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

Як отримати повний перелік усіх встановлених програм?


1
Справа в OS X полягає в тому, що ти, як правило, не «встановлюєш» більшість додатків окрім програм із магазину додатків Mac або декількох інших компаній, таких як Adobe або Microsoft. Більшість додатків - це лише речі, які ви завантажуєте у файлі ZIP або DMG та перетягуєте в папку Applications. Ця папка програм - це те, де майже завжди знаходяться програми, і вона буде такою ж повною, як і список.
Девід

8
Тут ви знайдете тонку складність у тому, що ви запитуєте, і це: що таке "додаток"? Шукаєте всі .appпакети у вашій системі? Або ви хочете список того, що може виконати користувач?
Ян Ч.

2
Якщо ви хочете додати те, що ви плануєте зробити із цим списком додатків, як тільки ви його отримаєте, мені цікаво дізнатись, чи відповіді краще орієнтуватимуться на ваші потреби, оскільки ідея додатка досить нечітка та відкрита для тлумачення.
bmike

1
Я не ОП, але моє визначення було б переліком всього, що буде працювати як аргумент open -a.
Марк Рід

Відповіді:


19

Спробуйте: Про цей Mac> Детальніше> Системний звіт> Програмне забезпечення

.

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

Не лише "Установки" ... але й інші також можуть дати вам інформацію.


3
Для мене на вкладці "Програми" був кращий список, який з’явився на секунду.
ma11hew28

14

Якщо ви просто шукаєте список програм із розширенням .app, тоді запускайте термінал і запускаєте

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

(зрештою) надасть вам досить вичерпний список програм, записаних у текстовий файл під назвою "applications.txt" у вашій домашній папці.


це покаже рекурсивно всі пакети, що використовуються внутрішньо встановленими програмами, і, мабуть, це не те, що оператор хоче. тож замість того, щоб рахувати Xcode.appяк "одну програму, яку я встановив", findповернеться під нею 242 (на моїй установці). навіть простий ls /Applicationsдасть більш точне число з точки зору того, що реально встановлено.
мінус

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повертає результат порожніх, якщо індексування вимкнено.
мінус

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)
мінус

1

Відкрийте термінал і напишіть наступну команду. sudo find / -iname *.app Це той самий answser, ніж "binarybob", але за допомогою sudo ви можете отримати доступ до списку папок, які вам не обійтися без прав адміністратора. Вам буде запропоновано ваш пароль, і ви отримаєте переваги права "sudo", якщо ваш акаунт - це адміністраторський обліковий запис.

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


Однак це також отримає резервні копії, якщо ці диски встановлені, наприклад, диски TimeMachine
user151019

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 повинен показувати всі програми в / Програмах; їм не потрібно створювати "ярлик", щоб відобразитись там.
  2. Ви можете подивитися безпосередньо в / Програми та / Програми / Утиліти.
  3. Інформація про систему містить розділ Програмне забезпечення> Програми на бічній панелі, який відображатиме ще більш повний список, включаючи додатки, що зберігаються у несподіваних місцях (я думаю, що для їх пошуку використовується Spotlight).

0

Проста відповідь, яку я щойно створив з усіх відповідей вище.

ls /Applications > Desktop/applications.txt

Чому голосування "за"?
Vinozio

Програми можна встановити за межами папки / Applications.
користувач151019

це дублікат
historystamp

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
Програми можна встановити поза папкою Applications.
Ян Ч.

-5

Finder> програми. просто як це


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