Les Mikesell wrote:
On Thu, 2006-05-04 at 06:25, Aaron Konstam wrote:
I've found that when I edit a file with vi or gedit I lose all of the
user extended attributes associated with that file. A stat reveals that
the inode number has changed. Is this the reason why I'm losing the
extended attributes? Is vi and gedit creating a new file? Is it easy
to change this behaviour?
I don't know for sure but that makes sense to me. When vi is used, at
least, a temporary copy of the file is created to be edited. It would
not surprise me that when you save the file a new file with a new inode
is created.
If it did that, you would not be able to edit files where you
have write permission on the file but not the directory
containing them and hardlinked files would no longer be
linked. It should be copying the temp file contents back
over the original at least in cases where it can't duplicate
all the attributes and links.
I tried editing a file where I didn't have write permission on the
directory, only have write permission on the file. That worked as I
expected, the EAs were preserved and the inode did not change. Anyone
know why vim behaves differently when it has write permissions for the
directory? Is this a vim "bug" ( not behaving the way ?most? users
expect ) or is there a reason?