如何查找所有已安装的应用程序

时间:2016-09-07 20:39:26

标签: bash macos

我正在尝试使用find列出所有已安装的应用程序。 find /Applications -name "*.app"。但是这会返回一个列表:

/Applications/Firefox.app/Contents/MacOS/crashreporter.app
/Applications/Firefox.app/Contents/MacOS/plugin-container.app
/Applications/Firefox.app/Contents/MacOS/updater.app

使用find /Applications -name "*.app" -exec basename {} \;会返回如下列表:

DVD Player.app
FaceTime.app
Firefox.app

这是更好的,但我想要列出的是应用程序及其存储的目录:/Applications/Firefox.app

如何在不列出应用程序本身的子目录的情况下列出所有已安装的应用程序?

4 个答案:

答案 0 :(得分:1)

你可以尝试

-type d

此处,-maxdepth 1将搜索限制为仅限目录,而private Dictionary<string, Func<IniConfig, object>> typeMapping = new Dictionary<string, Func<IniConfig, object>>(); typeMapping["MB"] = ProcessMB; public object ProcessMB(IniConfig file) { return null; } object iif(bool expression, object truePart, object falsePart) { return expression ? truePart : falsePart; } FilesToProcess.ForEach(x => iif(typeMapping.ContainsKey(x.ExtractType), typeMapping[x.ExtractType](x), Error(x))); 则限制&#34;递归级别&#34;

答案 1 :(得分:1)

询问System Profiler

system_profiler SPApplicationsDataType

它只为路径提供了更多信息,也可选择xml格式化

system_profiler SPApplicationsDataType -xml

答案 2 :(得分:0)

尝试

find /Applications -printf "%f\n"|grep "\.app"

以.app命名为

find /Applications -printf "%f\n"|grep "\.app"

答案 3 :(得分:0)

这将找到所有应用程序,即使在子目录中:

find                  \
      /Applications   \
      -iname "*.app"  \
      -type d         \
| grep  -v  '\.app.*\.app'

-type d表示查找目录,因为应用程序实际上是目录。

grep -v表示过滤掉匹配的条目......

\.app.*\.app与正则表达式匹配,意味着“ .app列出两次