Você está tornando sua vida mais complicada do que o necessário; -)
Se o comando subshell (a expressão dentro de seu $()
) já fornecer uma lista de nomes de arquivos, e o "comando target" (rm -rf no seu caso) já aceitar uma lista de nomes de arquivos, por que não usar
git status --porcelain| sed 's/^??//g' | xargs rm -rf
Ou, se você deseja praticar um "loop for" no bash, você não precisa de xargs:
for f in $(git status --porcelain| sed 's/^??//g') ; do
rm -rf $f
done
BTW ... verifique duplamente seus comandos 'rm -rf' (adicionando um 'echo' antes de 'rm -rf') antes de executá-los, erros bobos acontecem e você vai se arrepender!