
Quando edito um arquivo novi
editor, o valor do inode do arquivo muda. Mas quando editado com o cat
comando, 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
,backupcopy
ewritebackup
opçõ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 yes
ao seu arquivo .vimrc
.
Responder2
Muito provavelmente, você definiu ocópia de segurançaopção ativada ecópia de segurançapara "não" ou "breakhardlink".