find
有没有一种简洁的方法来调用路径中可用的“其他”可执行文件where
?
C:\repos>where find
C:\Windows\System32\find.exe
C:\Program Files\Git\usr\bin\find.exe
C:\Users\Qwerty\cmd\UnxUtils_wbin\find.exe
例如类似find~2
或想要whereget find -n 2 -- <arguments for find here>
答案1
调用没有完整路径的可执行文件将始终通过搜索 中的目录来查找并使用第一个匹配的文件名$PATH
。例如,如果您始终想使用 git find
,只需确保它的路径出现在您的$PATH
前Windows find
。如果这不令人满意或不可能(例如由于策略),您应该bash
为其创建一个别名,或者始终使用完整路径名来调用它。
答案2
我就把它放在这里
$ alias whereget='_whereget() { A=$1; B=$2; shift 2; eval \"$(where $B | head -$A | tail -1)\" $@; }; _whereget'
$ whereget 2 find . -type d
不幸的是,这个解决方案仅适用于 bash,不适用于 Windows cmd。