仅获取“type -p prog”命令的路径

仅获取“type -p prog”命令的路径

如果我跑

nrolland@mactoasty ~ $ type -p skhd   
skhd is /usr/local/bin/skhd

我无法用其他命令很好地组合它,例如

nrolland@mactoasty ~ $ la `type -p skhd`      
ls: is: No such file or directory
ls: skhd: No such file or directory
lrwxr-xr-x  1 nrolland  admin    29B Jun  4 09:35 /usr/local/bin/skhd -> ../Cellar/skhd/0.2.2/bin/skhd

只获得第二部分的最干净的方法是什么? (我正在使用 zsh 如果有帮助的话)

答案1

改用command -v skhd

ls -l "$( command -v skhd )"

实用性command是一个 POSIX 标准实用程序,通过使用其-v标志,如果在 中找到给定实用程序,它将输出给定实用程序的路径$PATH,除非它是函数、别名或 shell 内置实用程序。

答案2

zsh,type -p默认情况下是详细的。从man zshbuiltins

   type [ -wfpamsS ] name ...
          Equivalent to whence -v.

如果您不想冗长,您可以使用whence -p

% type -p g++    
g++ is /usr/bin/g++
% whence -p g++  
/usr/bin/g++

相关内容