1

Я использую утилиты gnuwin32 на Windows 7.

Я хочу передать список файлов в 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 ответ1

0

Я могу воспроизвести ваши выводы о GNU Linux. Здесь решение состоит в том, чтобы вместо этого использовать GNU Parallel. Поэтому попробуйте использовать GNU Parallel:

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

Он был протестирован на CygWin, поэтому он может работать и на gnuwin32.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .