Quando você deseja modificar um arquivo, você tem duas opções, cada uma com seus benefícios e desvantagens.
Você pode substituir o arquivo no local. Isso não usa espaço extra e conserva os links físicos, permissões e qualquer outro atributo além do conteúdo do arquivo existente. A principal desvantagem de fazer isso é que, se algo acontecer enquanto o arquivo está sendo gravado (o aplicativo trava ou a energia acaba), você acaba com um arquivo parcialmente gravado.
Você pode gravar a nova versão do arquivo em um novo arquivo com um nome diferente e movê-lo no lugar. Isso usa mais espaço e quebra os links físicos, e se você tiver permissões de gravação em um arquivo, mas não no diretório que ele contém, não poderá fazê-lo. Por outro lado, a versão antiga do arquivo é substituída atomicamente pela nova versão; portanto, a cada momento, o nome do arquivo aponta para uma versão completa e válida do arquivo.
Editores avançados como Vim ou Emacs podem escolher entre os dois métodos. Quando eles usam o primeiro método, normalmente fazem primeiro um arquivo de backup, que pode ser recuperado se o novo conteúdo do arquivo não puder ser gravado corretamente.
O vi clássico substitui o arquivo no lugar. Portanto, o inode é inalterado.
Em Vim, como CJM já declarou , a escolha é controlada pelos backup, backupcopye writebackupopções. Por padrão, o Vim renomeia o arquivo antigo e grava um novo arquivo com o nome original, se achar que pode recriar os atributos do arquivo original. Se você deseja reutilizar o inode existente (e, assim, arriscar perder dados ou perder mais tempo fazendo uma cópia de backup), adicione set backupcopy yesao seu .vimrc.
~/.vimrc
. Essas não são as configurações padrão.backup
no meu.vimrc
, mas o inode ainda estava mudando, porque o padrão é fazer backup do arquivo atual, excluído posteriormente e / / sempre que possível * / renomear o arquivo / * para o backup * / e gravar o novo / * com o mesmo nome, alterando efetivamente o inode * / . Resolvido adicionandoset backupcopy=yes
a.vimrc
.Quando você deseja modificar um arquivo, você tem duas opções, cada uma com seus benefícios e desvantagens.
Editores avançados como Vim ou Emacs podem escolher entre os dois métodos. Quando eles usam o primeiro método, normalmente fazem primeiro um arquivo de backup, que pode ser recuperado se o novo conteúdo do arquivo não puder ser gravado corretamente.
O vi clássico substitui o arquivo no lugar. Portanto, o inode é inalterado.
Em Vim, como CJM já declarou , a escolha é controlada pelos
backup
,backupcopy
ewritebackup
opções. Por padrão, o Vim renomeia o arquivo antigo e grava um novo arquivo com o nome original, se achar que pode recriar os atributos do arquivo original. Se você deseja reutilizar o inode existente (e, assim, arriscar perder dados ou perder mais tempo fazendo uma cópia de backup), adicioneset backupcopy yes
ao seu.vimrc
.fonte
writebackup
porque eu já desligueibackup
e obackupcopy
inode ainda estava mudando.