![xargs 在 Windows 上错误解释反斜杠](https://linux22.com/image/1482776/xargs%20%E5%9C%A8%20Windows%20%E4%B8%8A%E9%94%99%E8%AF%AF%E8%A7%A3%E9%87%8A%E5%8F%8D%E6%96%9C%E6%9D%A0.png)
我在 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。