This is very sweet of Unix.
Indeed.
* Why is it sensible to allow to truncate a file someone has opened?
Why not?
if you want to do it, go ahead. the system is not your nanny.
* Especially if you don't allow to remove such files?
* Or, more specifically, you ALLOW to remove such files, but not to
reclaim the disk space?
* And how am I supposed to know which process is using the file?
For instance, Unix will let you overwrite a shared object used by a
process, and the process will crash. Isn't it *hateful*?
It does allow you to remove them.
logically the file is no longer there after you remove it. as someone
mentioned - if there is an open file handle to that file it is not
deleted until the process closes the file.
this is done exactly to prevent crashes.
if you really want I am sure there is a method to open a file
exclusively, but in my opinion current behavior is far better than the
windows behavior.
why do you think every time you install some crap windows ask for a reboot?
that IS hateful.