使用终端检查MacOS上是否安装了应用程序

时间:2019-01-08 22:13:33

标签: bash macos shell terminal

我正在用TypeScript / NodeJs制作一个小的跨平台CLI工具。其主要功能要求它需要检查主机上安装了哪些浏览器。在Linux和Windows上,它可以完美运行。我对如何实现这一目标进行了大量研究,目前我在Windows上使用“ reg查询”,在基于Unix的操作系统(Linux)上使用“哪个”,但是我不知道从MacOS开始。

我知道这是一个类似Unix的操作系统,但是我无法测试我的工具。有人可以帮我,因为我实际上不是MacBook的所有者,所以我无法测试应该使用哪个bash命令。我并不是在要求您编写完整的代码,只是要使用哪个命令,或者甚至更好的是,该命令的有效示例(屏幕截图)可以正常工作。我知道我可以使用“哪个”,“类型”或什至“ open -Ra”(对此不确定),我只是不知道它们的输出是什么。

4 个答案:

答案 0 :(得分:1)

命令:

mdfind "kMDItemKind == 'Application'"

将输出系统上已安装的应用程序列表(每行一个)及其路径。例如:

  

/ Applications / Safari Technology Preview.app
  /Applications/Safari.app

您可以在此列表中搜索支持的浏览器。

答案 1 :(得分:0)

Mac OS基于Unix版本的Free BSD构建。许多Linux命令可能也可以在Mac上运行。要访问操作系统的该部分,可以使用终端仿真器“ Terminal”和“ iTerm”。在Mac上,“哪个”命令可以正常工作。

如果您的挑战只是在Mac计算机上找到浏览器,我将使用ls命令传递到grep中。 Mac计算机上的大多数应用程序都存储在“应用程序”文件夹中。此文件夹位于根级别。要查找特定的浏览器,请输入:

> cd Applications 
> ls -l | grep -i BrowserName

您可以针对已知的每种浏览器执行此操作。我一般不知道如何找到浏览器。如果这样做,您可以在Mac上尝试相同的命令。

如果您需要更多帮助,请随时发表评论。

答案 2 :(得分:0)

您还可以使用以下内容:

mdfind -name 'kMDItemFSName=="*.app"' -onlyin /Volumes/Macintosh_HD/Applications/

mdfind -name 'kMDItemFSName=="*.app"' -onlyin /Volumes/Macintosh\ HD/Applications/ |cut -d "/" -f3|grep .app

答案 3 :(得分:0)

这取决于“已安装”的含义。我可以想到两个不同的定义:

  1. 出现在启动板中的应用。
  2. 出现在“系统信息”>“应用程序”中的应用程序,可以通过open -a {app}从终端启动,也可以导航到应用程序文件夹并双击它。它们的位置涵盖了整个Spotlight索引:通常是整个硬盘驱动器减去Spotlight排除项。

对于#1,我们可以使用@mschmidt的答案,例如:

mdfind -name 'Google Chrome.app' -onlyin /Applications -onlyin ~/Applications -onlyin /System/Applications

(我不太肯定这些是Launchpad唯一使用的根。)

对于#2,我们可以使用:

mdfind -name 'Google Chrome.app'

这可以在Spotlight中的任何位置找到它,而实际上open -a可以打开它。

在Catalina上测试。