In terms of efficiency, using one rm per file is not optimal, as it requires a
fork and exec for each rm.
Assuming you have a list.txt containing the files you want to remove this would be more efficient but it's still gonna be slow:
xargs -i rm {} < list.txt
Another approach would be to :
nice -20 xargs -i rm {} < list.txt
(this will take less time but will affect your system greatly :)
or
I don't know how fast this would be but:
mv <file-name> /dev/null
or
Create a special mount point with a fast filesystem (using a loop device ?) , use that to store and delete your Huge files.
(maybe move the files there before you delete them, maybe it's faster or maybe just unmount it when you want files gone)
or
cat /dev/null > /file/to/be/deleted
(so it's zero-sized now) and if you want it to disappear just rm -rf <file>
now
or even better
drop the cat and just do # > /file/to/be/emptied