xargs 在 Windows 上错误解释反斜杠

xargs 在 Windows 上错误解释反斜杠

我在 Windows 7 上使用 gnuwin32 实用程序。

我想要通过管道将文件列表xargs删除。

但如果我输入正常的 Windows 路径,那么 xargs 会解释并删除反斜杠

dir /B /S c:\windows\system32\*.sys | head | xargs echo

导致以下输入xargs

c:\windows\system32\clfs.sys
c:\windows\system32\win32k.sys
c:\windows\system32\drivers\1394bus.sys
c:\windows\system32\drivers\1394ohci.sys
c:\windows\system32\drivers\acpi.sys
c:\windows\system32\drivers\acpipmi.sys
c:\windows\system32\drivers\adp94xx.sys
c:\windows\system32\drivers\adpahci.sys
c:\windows\system32\drivers\adpu320.sys
c:\windows\system32\drivers\afd.sys

然后打印

c:windowssystem32clfs.sys c:windowssystem32win32k.sys c:windowssystem32drivers1394bus.sys c:windowssystem32drivers1394ohci.sys c:windowssystem32driversacpi.sys c:windowssystem32driversacpipmi.sys c:windowssystem32driversadp94xx.sys c:windowssystem32driversadpahci.sys c:windowssystem32driversadpu320.sys c:windowssystem32driversafd.sys

删除了反斜杠。因此,它不是简单地在命令行上输出输入,而是解析和解释我认为不应该做的字符串。

如何解决这个问题?

答案1

我可以在 GNU Linux 上重现您的发现。这里的解决方案是改用 GNU Parallel。因此,请尝试使用 GNU Parallel:

dir /B /S c:\windows\system32\*.sys | head | parallel echo

它已经在 CygWin 上测试过,因此它也可能适用于 gnuwin32。

相关内容