XARGS не с обратной косой чертой, кавычки. Это должно быть что-то вроде
ls -1 |tr \\n \\0 |xargs -0 -iTHIS echo "THIS is a file."
xargs -0 опция:
-0, --null
Input items are terminated by a null character instead of by whitespace, and the quotes and backslash are
not special (every character is taken literally). Disables the end of file string, which is treated like
any other argument. Useful when input items might contain white space, quote marks, or backslashes. The
GNU find -print0 option produces input suitable for this mode.
ls -1
завершает элементы символами новой строки, поэтому tr
переводит их в нулевые символы.
Этот подход примерно в 50 раз медленнее, чем итерация вручную с for ...
(см. Майкл Аарон Сафян * ответ 1015 * с) (3,55 с против 0,066 с). Но для других команд ввода, таких как locate, find, чтение из файла (tr \\n \\0 <file
) или аналогичных, вы должны работать с xargs
следующим образом.