Por que o valor do inode muda quando editamos no editor “vi”?

Por que o valor do inode muda quando editamos no editor “vi”?

Quando edito um arquivo novieditor, o valor do inode do arquivo muda. Mas quando editado com o catcomando, o valor do inode não muda.

Responder1

Quando quiser modificar um arquivo, você tem duas opções, cada uma com suas vantagens e desvantagens.

  • Você pode substituir o arquivo no lugar. Isso não utiliza nenhum espaço extra e conserva os links físicos, as permissões e qualquer outro atributo além do conteúdo do arquivo existente. A principal desvantagem de fazer isso é que se alguma coisa acontecer enquanto o arquivo estiver sendo gravado (o aplicativo travar ou faltar energia), você acabará com um arquivo parcialmente gravado.
  • Você pode gravar a nova versão do arquivo em um novo arquivo com um nome diferente e depois movê-lo para o lugar. Isso usa mais espaço e quebra 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, você não poderá fazer isso. Por outro lado, a versão antiga do arquivo é atomicamente substituída pela nova versão, portanto, a cada momento, o nome do arquivo aponta para uma versão válida e completa do arquivo.

Editores avançados como Vim ou Emacs podem escolher entre os dois métodos. Quando usam o primeiro método, normalmente fazem primeiro um arquivo de backup, que pode ser recuperado se o conteúdo do novo arquivo não puder ser gravado corretamente.

O vi clássico substitui o arquivo no lugar. Portanto, o inode permanece inalterado.

No Vim,como cjm já afirmou, a escolha é controlada pelobackup,backupcopyewritebackupopções. Por padrão, o Vim renomeia o arquivo antigo e, em seguida, grava um novo arquivo com o nome original, se achar que pode recriar os atributos do arquivo original. Se você quiser reutilizar o inode existente (e correr o risco de perder dados ou perder mais tempo fazendo uma cópia de backup), adicione set backupcopy yesao seu arquivo .vimrc.

Responder2

Muito provavelmente, você definiu ocópia de segurançaopção ativada ecópia de segurançapara "não" ou "breakhardlink".

informação relacionada