如何运行与 PATH 中找到的同名匹配的“其他”可执行文件?

如何运行与 PATH 中找到的同名匹配的“其他”可执行文件?

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。

相关内容