macOS xargs 不会打开由 mdfind 和 grep 找到的应用程序

问题描述

我正在寻找一个命令,它可以找到路径并打开所有 .app 文件,而只需在终端中更改应用程序名称

我试过了:

mdfind "calendar.app" "kind:app" | grep -v '/Users/' | xargs open 

与日历、Safari、计算器配合使用 --> 查找并打开 .app

但是当我尝试使用带有空间的 .app 时,它不起作用:

mdfind "Google Chrome.app" "kind:app" | grep -v '/Users/' | xargs open 

文件 /Applications/Google 和 /Users/Simon/Chrome.app 不存在。

我试过 -0,\ 但没有用

你能帮我吗?

解决方法

由于 mdfind 返回 /Applications/Google Chrome.app(一个包含空格的名称),因此您需要将它用引号括起来,然后再将其传递给 xargs

mdfind "Google Chrome.app" "kind:app" | grep -v '/Users/' | awk '{print "\x27" $0 "\x27" }' | xargs open

像这样,awk 会在字符串前后打印一个单引号(\x27),结果为:'/Applications/Google Chrome.app'。现在,xargs 将正确理解此输入。