A solução "mais correta" seria a seguinte:
xargs -I{} rm -r {} < files
Isso chama rm -r
, onde {}
é substituído pelo nome do arquivo.
Por quê? Piping arquivos com espaços para xargs
resultará em argumentos errados. Digamos que sua lista de arquivos seja assim:
/path/to/file 1
/path/to/file_2
Em seguida, xargs rm -r < list.txt
tentaria excluir /path/to/file
, 1
e /path/to/file_2
. Definitivamente não é o que você quer. Esteja sempre ciente dos espaços nos caminhos ao enviar e receber comandos UNIX / Linux.