xargs falha com barras invertidas, aspas. Precisa ser algo como
ls -1 |tr \\n \\0 |xargs -0 -iTHIS echo "THIS is a file."
xargs -0 opção:
-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
finaliza os itens com caracteres de nova linha, tr
convertendo-os em caracteres nulos.
Essa abordagem é cerca de 50 vezes mais lenta do que a iteração manualmente com for ...
(consulte a resposta de Michael Aaron Safyan ) (3,55s vs. 0,066s). Mas, para outros comandos de entrada, como localizar, localizar, ler de um arquivo ( tr \\n \\0 <file
) ou similar, você precisa trabalhar xargs
assim.
ls -1
pode ser um exemplo aqui, mas é importante lembrar que não é bom analisar a saída dels
. Veja: mywiki.wooledge.org/ParsingLs