วิธีรับรายการทั้งหมดของแอปพลิเคชันทั้งหมดที่ติดตั้ง


15

การใช้ OSX 10.8.4. ฉันประสบปัญหาในการค้นหารายการแอปพลิเคชันซอฟต์แวร์ทั้งหมดที่ติดตั้งบน Mac ของฉัน แน่นอนLaunchpadจะแสดงเฉพาะรายการที่มีทางลัดแอพที่สร้างขึ้นยกเว้นรายการที่ไม่มี ฉันยังพยายามถือลงOptionที่สำคัญในขณะที่ในเมนูแอปเปิ้ลมีการเปลี่ยนแปลงAbout This MacไปSystem Informationแล้วSoftware-->Installationsแต่ที่ยังไม่ได้เป็นรายการที่สมบูรณ์

ฉันจะรับรายการทั้งหมดของแอปพลิเคชันทั้งหมดที่ติดตั้ง


1
สิ่งที่มีใน OS X คือโดยทั่วไปคุณไม่ได้ 'ติดตั้ง' แอพพลิเคชั่นส่วนใหญ่นอกเหนือจาก Mac App Store หรืออื่น ๆ จาก บริษัท เช่น Adobe หรือ Microsoft แอพส่วนใหญ่เป็นเพียงสิ่งที่คุณดาวน์โหลดในไฟล์ ZIP หรือ DMG แล้วลาก / วางไปที่โฟลเดอร์ Applications ของคุณ โฟลเดอร์แอปพลิเคชันนั้นเป็นที่ที่แอพเกือบจะอยู่เสมอและจะเป็นรายการที่สมบูรณ์ที่สุดเท่าที่คุณจะได้รับ
David

8
มีความซับซ้อนเล็กน้อยกับสิ่งที่คุณถามที่นี่และนั่นคือ "แอปพลิเคชัน" คืออะไร คุณกำลังมองหา.appชุดรวมทั้งหมดในระบบของคุณ? หรือคุณต้องการรายการสิ่งที่ผู้ใช้สามารถดำเนินการได้?
เอียนซี

2
หากคุณต้องเพิ่มสิ่งที่คุณวางแผนที่จะทำกับรายการแอปพลิเคชันนี้เมื่อคุณมีมันฉันอยากรู้ว่าคำตอบจะดีกว่าความต้องการของคุณหรือไม่เนื่องจากแนวคิดของแอพค่อนข้างคลุมเครือและเปิดรับการตีความ
bmike

1
ฉันไม่ OP open -aแต่นิยามของฉันจะเป็นรายชื่อของทุกอย่างที่จะทำงานเป็นอาร์กิวเมนต์ไปยัง
Mark Reed

คำตอบ:


19

ลอง: เกี่ยวกับ Mac นี้> ข้อมูลเพิ่มเติม> รายงานระบบ> ซอฟต์แวร์

.

ป้อนคำอธิบายรูปภาพที่นี่

ไม่เพียงแค่ "การติดตั้ง" ... แต่คนอื่นอาจให้ข้อมูลกับคุณเช่นกัน


3
สำหรับฉันแท็บ "แอปพลิเคชัน" มีรายการที่ดีกว่าซึ่งใช้เวลาชั่วครู่ในการปรากฏ
ma11hew28

14

หากคุณเพียงแค่มองหารายการแอปพลิเคชั่นที่มีนามสกุล. app ให้เริ่มต้น Terminal และเรียกใช้

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

(ในที่สุด) จะให้รายการแอพพลิเคชั่นที่ครอบคลุมซึ่งเขียนไปยังไฟล์ข้อความชื่อ "applications.txt" ในโฟลเดอร์ Home ของคุณ


สิ่งนี้จะแสดงการรวมกลุ่มซ้ำทั้งหมดที่ใช้ภายในโดยแอปพลิเคชันที่ติดตั้งและนั่นอาจไม่ใช่สิ่งที่ op ต้องการ ดังนั้นแทนที่จะนับ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
spotlightต้องเปิดใช้งานการจัดทำดัชนี@ghoti และสปอตไลท์ยังต้องมีแอปพลิเคชันใหม่และทำดัชนี 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. เปิด Terminal
  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
    

ในขณะที่สิ่งนี้ให้รูปแบบ ballpark ที่ยอมรับได้มันจะพลาดตัวอย่างเช่นยูทิลิตี้ระบบทั้งหมดภายใต้Utilities/และโปรแกรมอื่น ๆ ทั้งหมดที่ติดตั้งลงในโฟลเดอร์ย่อย (เช่นIntel Power Gadget)
minusf

1

เปิดเทอร์มินัลและเขียนคำสั่งต่อไปนี้sudo find / -iname *.app มันเป็นตัวตอบเดียวกันกับ "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

วิธีการใช้งาน โปรดเพิ่มขั้นตอนเพิ่มเติมในคำตอบของคุณ
Hemang

0
  1. LaunchPad ควรแสดงแอพทั้งหมดใน / Applications; พวกเขาไม่จำเป็นต้องสร้าง "ทางลัด" เพื่อให้ปรากฏที่นั่น
  2. คุณสามารถดูได้โดยตรงใน / Applications และ / Applications / Utilities
  3. ข้อมูลระบบมีส่วนซอฟต์แวร์> แอปพลิเคชันในแถบด้านข้างที่จะแสดงรายการที่สมบูรณ์ยิ่งขึ้นรวมถึงแอพที่เก็บไว้ในสถานที่ที่ไม่คาดคิด (ฉันคิดว่ามันใช้ Spotlight เพื่อค้นหาพวกเขา)

0

คำตอบง่ายๆฉันเพิ่งสร้างจากคำตอบทั้งหมดข้างต้น

ls /Applications > Desktop/applications.txt

ทำไมถึงลงคะแนน?
Vinozio

สามารถติดตั้งแอปพลิเคชันนอกโฟลเดอร์ / Applications
user151019

มันซ้ำกัน
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

ลองใช้สิ่งนี้ใน Terminal (/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

นี่เป็นเคียวรีการค้นหาที่ค้นหาไอเท็มที่มี metadata predicate kMDItemContentType == "com.apple.application-bundle"มันจะให้รายการทั้งหมดของบันเดิลของแอปพลิเคชันทั้งหมด ( .app) ในขอบเขตที่คุณกำหนดหรือหาก-onlyinไม่ได้ระบุสเกลโกลบอล (รวมถึงไดรฟ์ภายนอก / เครือข่าย) ใช้




-4

โฟลเดอร์แอปพลิเคชัน .. เพียงเข้าไปที่โฟลเดอร์แอปพลิเคชัน


3
แอปพลิเคชันสามารถติดตั้งได้นอกโฟลเดอร์ Applications
เอียนซี

-5

โปรแกรมค้นหา ง่ายเหมือนที่


ง่ายมากที่จะพลาดแอพพลิเคชั่นใด ๆ ที่ไม่ได้ติดตั้งใน/Applications...
nohillside
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.