如何在终端中找到程序的路径?

Xit*_*rum 37 terminal macos

我安装了一个应用程序,现在我可以通过终端作为 myapplication 访问它。不过,它是一个别名。如何找到文件的完整路径?

Dan*_*eck 43

您可以使用typewhich来确定某个命令bash是什么,如果它是一个应用程序,它所在的位置。

$ type type
type is a shell builtin
$ type cd
cd is a shell builtin
$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/Users/danielbeck/bin/ls
$ which which
/usr/bin/which
$ which ls
/Users/danielbeck/bin/ls
Run Code Online (Sandbox Code Playgroud)

命令whichtype -P对你的程序唯一的工作PATH,当然,但你将无法通过只输入其命令名称反正运行等。


如果您正在寻找一种简单的方法来确定 OS X (GUI) 应用程序包的安装位置(例如由open命令使用),您可以从命令行执行以下简短的 AppleScript:

$ osascript -e 'tell application "System Events" to POSIX path of (file of process "Safari" as alias)'
/Applications/Safari.app
Run Code Online (Sandbox Code Playgroud)

这要求相关程序(示例中的 Safari)正在运行。

  • 有没有办法在程序不运行的情况下获得与 osascript 相同的结果? (3认同)

Mat*_*s M 5

如果程序正在运行,您可以调用

ps -ef | grep PROGRAM
Run Code Online (Sandbox Code Playgroud)


小智 5

在 MAC (OS X) 上您可以执行以下操作:

\n\n
    \n
  1. 在 Finder 中找到该应用程序。
  2. \n
  3. 右键单击该应用程序并\n选择“显示包内容”。
  4. \n
  5. 找到可执行文件:通常,该文件位于 MacOS 的 Contents \xe2\x86\x92 中,并且与应用程序具有相同的名称。
  6. \n
  7. 将该文件拖到空白的终端命令行上。
  8. \n
\n\n

现在,您可以在命令行上查看应用程序的完整路径,并根据需要从那里运行它。

\n\n

摘自维基百科

\n