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


46

是否可以使用命令轻松找到可执行文件的路径?我正在本地计算机上寻找标识-如pwd?

pwd identify
=> /usr/local/bin/identify

Answers:


60

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

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false

1
which尽管该命令将正常工作,但通常不是用于执行此类工作的正确工具。请参阅此U&L问答:unix.stackexchange.com/questions/85249/…–
slm

6
在OSX上,which不会给出自定义脚本(位于中$PATH)的任何结果。type做。
wisbucky

17

如果您使用内置的bash type,它将显示命令的所有(路径中)位置:

$ 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

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

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}

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


4
在OSX上,which不显示自定义脚本的路径(位于中$PATH)。type做。
wisbucky

3

尝试“定位识别”


5
当“哪个”不会出现时,该功能就起作用了,因为该可执行文件不在您当前的PATH中,而且还会产生很多您不需要的内容。第一个路径过滤器:“定位命令| grep bin”。首先使用“哪个”。
dmckee

0

这取决于您要查找的内容。大多数实用程序取决于path变量。但是,如果您要查找的是您所要寻找的机会,那么除非有相同可执行文件的多个副本,否则您实际上不需要知道它在哪里。

但这不适用于大多数在OSX中运行的事物,因为它们的运行方式不像普通的linux / unix二进制文件。以下是一些查找路径声明中未包含的内容的方法。

找:

sudo find / -name <FILE>

这将找到您作为第一个参数给出的文件系统上存在的任何内容。它需要以root身份运行才能搜索私有目录。如果您不确定名称,它还支持通配符。

终奌站:

如果文件在finder中,则可以打开一个终端窗口,然后将文件放入其中。然后使用终端显示文件的完整路径。

聚光灯:

很自我解释。您正在捐赠处理器周期,以使其保持您的fi的索引

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.