설치된 모든 응용 프로그램의 전체 목록을 얻는 방법?


15

OSX 10.8.4를 사용하면 Mac에 설치된 모든 소프트웨어 응용 프로그램의 전체 목록을 찾는 데 어려움을 겪고 있습니다. 물론, Launchpad앱 바로 가기가 생성 된 앱 목록을 보여줍니다. 나는 또한 누른 노력 Option변화에 Apple 메뉴에있는 동안 키 About This MacSystem Information누른 다음, Software-->Installations하지만 여전히 전체 목록은 아니었다.

설치된 모든 응용 프로그램의 전체 목록을 얻으려면 어떻게합니까?


1
OS X의 장점은 일반적으로 대부분의 응용 프로그램을 Mac App Store의 응용 프로그램이나 Adobe 또는 Microsoft와 같은 회사의 다른 응용 프로그램과 별도로 설치하지 않는다는 것입니다. 대부분의 응용 프로그램은 ZIP 또는 DMG 파일로 다운로드하여 응용 프로그램 폴더로 끌어서 놓는 것입니다. 그 응용 프로그램 폴더는 거의 항상 응용 프로그램이 위치한 곳이며 목록과 같이 완성됩니다.
David

8
여기에 요구하는 내용에는 미묘한 복잡성이 있으며 "응용 프로그램"이란 무엇입니까? .app시스템의 모든 번들 을 찾고 있습니까? 아니면 사용자가 실행할 수있는 것의 목록을 원 하십니까?
Ian C.

2
이 응용 프로그램 목록을 사용하여 수행하려는 작업을 추가하려는 경우 앱에 대한 아이디어가 매우 모호하고 해석에 개방되어 있기 때문에 답변이 귀하의 요구를 더 잘 충족시킬 수 있는지 궁금합니다.
bmike

1
나는 OP가 아니지만 내 정의는에 대한 인수로 작동하는 모든 목록입니다 open -a.
Mark Reed

답변:


19

시도 :이 Mac 정보> 추가 정보> 시스템 보고서> 소프트웨어

.

여기에 이미지 설명을 입력하십시오

"설치"뿐만 아니라 다른 것들도 정보를 제공 할 수 있습니다.


3
저에게는 "응용 프로그램"탭에 더 나은 목록이 표시되는데 1 초가 걸렸습니다.
ma11hew28

14

확장명이 .app 인 응용 프로그램 목록을 찾고 있다면 터미널을 시작하고 실행하십시오.

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

(결국) 홈 폴더의 "applications.txt"라는 텍스트 파일에 작성된 매우 포괄적 인 응용 프로그램 목록을 제공합니다.


이것은 설치된 응용 프로그램에서 내부적으로 사용 된 모든 번들을 재귀 적으로 표시하며 아마도 op가 원하는 것은 아닙니다. 따라서 Xcode.app"설치된 하나의 응용 프로그램" 으로 계산 하는 대신 find242 (내 설치시)가 반환됩니다. 간단한 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

OP 답변에서 쉬운 답변을 찾고 있는지 또는 어려운 답변을 찾고 있는지는 확실하지 않습니다. 거의 모든 앱을 편리한 목록으로 만드는 방법은 다음과 같습니다.

  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 "binarybob"과 동일한 정답이지만 sudo를 사용하면 관리자 권한 없이는 수행 할 수없는 일부 폴더에 액세스하고 나열 할 수 있습니다. 귀하의 계정이 관리자 계정 인 경우 귀하의 비밀번호를 묻고 sudo "권리"의 혜택을받습니다.

예를 들어, find / -iname *.app430 줄을 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

그것을 실행하는 방법? 답변에 더 많은 단계를 추가하십시오.
Hemang

0
  1. 런치 패드에는 / Applications의 모든 앱이 표시되어야합니다. "바로 가기"를 만들 필요가 없습니다.
  2. / Applications 및 / Applications / Utilities에서 직접 볼 수 있습니다.
  3. 시스템 정보에는 사이드 바에 소프트웨어> 응용 프로그램 섹션이 있는데, 여기에는 예기치 않은 위치에 저장된 앱을 포함하여 훨씬 더 완전한 목록이 표시됩니다 (스팟 라이트를 사용하여 찾을 수 있다고 생각합니다).


0

4 년 전에 질문을 받았으며 몇 가지 답변이 주어졌으며 각 질문은 GUI 또는 CLI를 통해 다른 방식으로 문제를 해결하려고 시도하지만 그중 아무것도 완료되지 않았습니다.

어제 회사에서는 모든 macOS 사용자에게 다음을 제공하도록 요청했습니다.

소프트웨어 감사를 위해 OS X / macOS 시스템에 설치된 모든 응용 프로그램 목록

프로세스를 일관되고 쉽고 완벽하게 만들기 위해 모든 사람이 터미널에서 동일한 명령을 실행했습니다.

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

위 명령은있는 기본 텍스트 편집기에서이 개 파일을 열어 모든 설치된 앱의 목록 뿐만 아니라 모든 "의 목록 실행 " 또한 응용 프로그램으로 고려되어야한다.

이것이 주어진 문제에 대한 가장 포괄적 인 해결책 을 제공한다고 생각합니다 . 빠르고 작업을 수행합니다.

보다 자세한 답변을 제공하기 위해 마지막으로 모든 명령과 인수를 거쳐 터미널 사용이 두려운 사람들에게 모든 것이 명확 해 지도록하겠습니다.

ls명령은 단순히 디렉토리 내용을 나열합니다. 이 경우 /Applications와 마찬가지로이 /usr/local/bin위치는 일반 사용자가 실행할 수있는 프로그램을위한 위치입니다.

인수 -l는 목록을 "긴 형식"으로 표시합니다. "긴 형식"에 대한 자세한 내용은 여기를 참조하십시오 .

다음 으로 파이프 기호가 | 있습니다. 명령 행에서 두 프로그램을 분리하여 나열된 출력을 다른 프로그램에서 다음에 열 수 있습니다. 이 경우 open명령을 사용하십시오 .

open명령은 파일과 디렉토리를 열지 만 다음과 결합합니다 -ef.

  • -e 파일을 /Applications/TextEdit
  • -f 표준 입력에서 입력을 읽고 기본 텍스트 편집기에서 결과를 엽니 다.

마지막으로 두 목록의 조합은 서로 결합되어 &&여러 명령을 한 번에 실행할 수 있으므로 결국 "한 줄"터미널 명령으로 끝납니다.

여기에 이미지 설명을 입력하십시오

이것이 도움이되고 자세한 설명을 제공하기를 바랍니다.


응용 프로그램의 I / 응용 프로그램에서 할 필요는 없습니다 거라고
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제공 하거나 제공되지 않은 경우 글로벌 스케일 (외부 / 네트워크 드라이브 포함)은 다음과 같습니다. 익숙한.



-2

찾기로 이동

응용 프로그램을 클릭하십시오


3
/ Applications 폴더 외부에 응용 프로그램을 설치할 수 있습니다.
Scot

-4

응용 프로그램 폴더. 그냥 응용 프로그램 폴더로 이동하십시오.


3
응용 프로그램은 응용 프로그램 폴더 외부에 설치할 수 있습니다.
Ian C.

-5

파인더> 응용 프로그램. 그렇게 간단


너무 간단해서 설치 되지 않은 응용 프로그램을 놓치게 됩니다 /Applications.
nohillside
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.