Assumindo que não há caracteres ruins (espaços em branco, novas linhas) nos caminhos:
... $(ls ~/semios/tmp/*| head -5) | xargs -d '\n' rm -f
ou
... | { cd ~/semios/tmp/; xargs -d '\n' rm -f; }
ou
tar -C ~/semios/tmp/ -cjvf ~/semios/tmp/test.tar.bz2 \
$(cd ~/semios/tmp/; ls * | head -5 |
{ while read file; do echo "$file"; rm -f "$file"; done;})
editar
Como xargs
usa quaisquer espaços em branco como delimitadores por padrão, a nova linha deve ser definida como o único delimitador. Mas devido ao $()
, este exemplo falharia mesmo com o espaço em branco no nome.