I don't see a "duplicate writer".
The shell and cat both have the file open for writing.
% sh longrunningprogram.sh > /tmp/stuff & % rm /tmp/stuff /tmp/stuff: file is used by longrunningprogram.sh [pid 134]
That leads to temp files NOT getting deleted when they should.
What I was saying is that the "two-step" deletion (unlink, reclaim) is only marginally useful for creating temporary files.
It's incredibly useful. The fact that you don't have to wait for a file to be closed before you can delete it makes all kinds of things that are a total pain in the neck on other platforms (upgrades, for example) Just Work makes the very idea of getting rid of it utterly hateful.
So the mechanism involved shouldn't get in the way when I do other things.
The only time it gets in the way is in the rarest of cases, when you have a long running program holding open a huge file and you can't kill it, *and* you made the mistake of deleting it because you were in a hurry to free space.
