如果我跑
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++