sort is a bad example: to support sorting in-place, it has to know the file name. Pity the user who typed
sort < bigfile > bigfile
for said user just lost a file.A general solution is something like:
$ sort "$name" | sponge "$name"
Check whether: $ sort -o "$name" "$name"
works with your version of the sort utility.This has bitten me occasionally, even though I know the workarounds (tempfiles or pipe-consumers like sponge(1)).
I'm wondering if there's any practical use for the behaviour, or if it's worth hacking a shell such that it produces a warning/interactive confirm prompt for it (or transparently buffers to DWIM maybe?)
Sure. However, for example, GNU sort doesn't work that way. Most utilities don't work that way. Most utilities accept a file as an source of input, and most of those don't act on the inode. That's the status quo.