On Mon, Mar 9, 2009 at 4:16 AM, sachin puri <[email protected]> wrote:
> Hi I am sachin Puri  I am new linux user.  I have following observation in
> case of vim editor and have some question regarding it so whole scenario is
> like given below . What I have done and observe
>
>
> Case 1 - I set all permissions  (rwx) for owner on parent directory. (I am
> the owner.)
> $ ls -ld dir
> drwxrwxrwx 2 sachin sachin 4096 Mar 7 13:42 dir
> and has structhure like below
> /home/sachin/dir/text.text
>
> In this case when editing the file "text.text", vim creates a temporary swap
> file in that directory. When the file is saved, the swap file is deleted and
> the inode number of "text.text" changes (it is different from the inode
> number of the original file and also the swap file).
>
> Case 2 - Write permission is removed from parent directory
> $ ls -ld dir
> dr-xr-xr-x 2 sachin sachin 4096 Mar 7 13:42 dir
>
> In this case when editing the file "text.text", vim creates a temporary swap
> file in /var/tmp. After saving the file, its inode does not change.
>
>
> This means that in case 2, vim is updating the contents of the file
> in-place. I have found that OpenOffice.org also updates the contents
> in-place, irrespective of the parent directory permissions.
>
> I wish to know why does vim create a new file in case 1.

For recovery. If vim (or the network in case of remote files) crashes,
the temp file can be useful.
vim -r <file> to recover.

> Wouldn't it be a
> costly operation, especially in case of large files? In short, which method
> is more efficient to implement for any file editor?

>From your experiment it seems to be creating a temp file in both cases.

>
> Please note that in all cases, all permissions are set on the file itself
> (i.e. text.text). I am just manipulating the permissions of the parent
> directory.
>
> thanks in advance
> --
> http://mm.glug-bom.org/mailman/listinfo/linuxers
>
-- 
http://mm.glug-bom.org/mailman/listinfo/linuxers

Reply via email to