如何在 OSX 中找到可执行文件的路径

Cod*_*eef 70 bash terminal mac-osx

有没有我可以使用的命令来轻松找到可执行文件的路径?我正在我的本地机器上寻找身份 - 像 pwd 之类的?

pwd identify
=> /usr/local/bin/identify
Run Code Online (Sandbox Code Playgroud)

Dav*_*ney 88

which 将搜索您提供的参数的路径,它几乎可以在任何 BSD 或 SysV UNIX 上找到

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
Run Code Online (Sandbox Code Playgroud)

  • 在 OSX 上,`which` 不会为自定义脚本(即在 `$PATH` 中)提供任何结果。`type` 确实如此。 (7认同)

Den*_*son 28

如果您使用 bash builtin type,它将显示命令的所有(in-path)位置:

$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch
Run Code Online (Sandbox Code Playgroud)

如果命令是一个函数,它会列出函数定义:

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}
Run Code Online (Sandbox Code Playgroud)

这些示例来自 Ubuntu 系统,但结果与 OS X 相似。

  • 在 OSX 上,`which` 不显示自定义脚本的路径(即在 `$PATH` 中)。`type` 确实如此。 (4认同)