从命令行显示软件包内容


14

在终端上工作时,我经常使用open .命令打开显示当前工作目录的查找程序窗口。但是,如果当前目录实际上是一个程序包,例如.app应用程序或.vmwarevm虚拟机,则会open .启动该应用程序或虚拟机。

如何打开显示指定包装内容的查找程序窗口?

我已经尝试过了open -A /System/Library/CoreServices/Finder.app .,但是那没用。


不是在Mac上进行测试,但是您是否尝试过使用cd /System/Library/CoreServices/Finder.app?如果不起作用,我将删除评论。
塞斯特2013年

我想猜测一下open -a Finder .是行不通的,因为当您在Finder中双击应用程序捆绑包时,它会启动应用程序:)。
杰森·萨拉兹

Answers:


3

使用open -R在包中的第一个文件,如果包没有一个会甚至工作Contents目录:

reveal() (
  shopt -s nullglob
  for f; do
    a=("$f"/*)
    [[ -d $f && ${#a} != 0 ]] && open -R -- "${a[0]}" || open -R -- "$f"
  done
)

不过,仅键入open -R包中某些文件的路径和路径可能会更容易。您可以绑定menu-complete.inputrc使其更容易插入第一个文件的路径。


9

您只需cd将其放入包中,即可在Terminal中打开它,然后open Contents在Finder中打开内容。

例如,要在Finder中打开Safari.app的内容,可以运行以下命令:

cd /Applications/Safari.app
open Contents

1
不,并非所有软件包都具有一个Contents文件夹- .vmwarevm虚拟机肯定没有。
安德鲁


没有Contents文件夹的另一种捆绑包是.xcodeproj捆绑包。您可以在此处获得示例。
andrew

2
目录位只是一个例子,执行cd到.app文件是你在找什么,而不管应用程序的捆绑最终内容。
塞斯特

1
open -R *

在Finder中打开包。但要注意:它还会选择每个包含的文件和文件夹。一般来说,对于大多数情况来说,这对您来说可能是对的Contents

看起来像这样: 沙拉拉拉拉


2
打开*似乎是一个非常糟糕的主意,尤其是在不警告人们错误目录中该怎么做的情况下(以及不知道目录的人怎么会知道他们所在的目录也是如此)。这应该是对其他答案的评论吗?
bmike

@bmike我猜你忘了-R选项...
Max Ried

0
open -R .

man open

-R,--reveal在查找器中选择而不是打开。


-1

在查找器中,右键单击该应用程序,然后选择“显示目录”,这将打开该应用程序,然后您可以浏览随附的文件夹。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.