Em termos de eficiência, o uso de uma rm por arquivo não é ideal, pois requer um fork e exec para cada rm.
Supondo que você tenha um list.txt contendo os arquivos que deseja remover, isso seria mais eficiente, mas ainda será lento:
xargs -i rm {} < list.txt
Outra abordagem seria:
nice -20 xargs -i rm {} < list.txt
(isso levará menos tempo, mas afetará bastante o seu sistema :)
ou
Eu não sei o quão rápido isso seria, mas:
mv <file-name> /dev/null
ou
Crie um ponto de montagem especial com um sistema de arquivos rápido (usando um dispositivo de loop?), Use isso para armazenar e excluir seus arquivos enormes.
(talvez mova os arquivos para lá antes de excluí-los, talvez seja mais rápido ou apenas desmonte quando quiser que os arquivos sejam removidos)
ou
cat /dev/null > /file/to/be/deleted
(portanto, é de tamanho zero agora) e se você quiser que desapareça rm -rf <file>
agora
ou melhor ainda
largar o gato e apenas fazer # > /file/to/be/emptied