Windows 上的 xargs:没有这样的文件或目录

Windows 上的 xargs:没有这样的文件或目录

我想将本地 git 存储库中的标签与远程服务器上的标签重新同步,使用StackOverflow 上提供了这个答案

git tag -l | xargs git tag -d
git fetch --tags

我已经安装了适用于 Windows 的 git,其中xargs包括Windows 版 FindUtils(据我所知)。

当我运行该命令的第一部分时,我得到的是:

xargs:git:没有这样的文件或目录

如果我修改运行命令:

git tag -l | xargs echo

它正确地“回显”了我的标签。因此,我唯一的结论是 xargs 由于某种原因无法解析路径中的可执行文件。

我怎样才能让 xargs 正确执行传递给它的内容(而不诉诸传递完整路径git.exe?)

答案1

我用Windows 上的 GnuUnix 工具的端口,并得到类似的问题,但错误信息总是Invalid argument,例如

> printf "Hello World!" | xargs printf "%s %s"
xargs: printf: Invalid argument

一个解决方案似乎是使用“众所周知的”额外间接级别,例如诸如的shell cmd.exe,来实际调用命令:

> printf "Hello World!" | xargs cmd /c printf "%s %s"
Hello World!

相关内容