So would
ls -S | head | xargs rmwork (even with filenames with spaces etc?)
Não. Por padrão, xargs divide em qualquer espaço em branco, não apenas em novas linhas.
E você não pode ver isso com | xargs echo , pois echo imprime todos os seus argumentos, separados por espaços. (Algo como | xargs printf "%s\n" iria imprimi-los separados por novas linhas, assim você verá se a divisão acontece no meio de um nome de arquivo.)
Pelo menos o GNU xargs tem -d '\n' para dividir apenas em novas linhas, e muitas versões do xargs têm -0 para dividir em caracteres NUL (vai com find -print0 ). Você quer o primeiro, pelo menos, mas no caso geral, os nomes dos arquivos também podem conter novas linhas, caso em que head também não será muito útil.
Eu sou obrigado a avisar que analisar a saída de ls é considerado errado , aparentemente pelo menos algumas versões mangle a saída mesmo sem a presença de novas linhas. (Você pode estar seguro se não tiver novas linhas ou caracteres não imprimíveis, talvez.)