Lorsque je modifie un fichier dans l'éditeur "vi", la valeur d'inode du fichier change. Mais lorsqu'elle est modifiée avec la commande cat, la valeur d'inode ne change pas.
22
Très probablement, vous avez activé l' option de sauvegarde et la copie de sauvegarde sur "non" ou "breakhardlink".
~/.vimrc
. Ce ne sont pas les paramètres par défaut.backup
dans mon.vimrc
, mais l'inode changeait toujours, car la valeur par défaut est de sauvegarder le fichier actuel, supprimé ensuite et / / chaque fois que possible * / renommer le fichier / * en sauvegarde * / et écrire le nouveau / * sous le même nom, changeant effectivement l'inode * / . Résolu en ajoutantset backupcopy=yes
à.vimrc
.Lorsque vous souhaitez modifier un fichier, vous avez deux options, chacune avec ses avantages et ses inconvénients.
Les éditeurs avancés tels que Vim ou Emacs peuvent choisir entre les deux méthodes. Lorsqu'ils utilisent la première méthode, ils créent normalement un fichier de sauvegarde en premier, qui peut être récupéré si le nouveau contenu du fichier ne peut pas être écrit correctement.
Le vi classique écrase le fichier en place. L'inode est donc inchangé.
Dans Vim, comme cjm l'a déjà dit , le choix est contrôlé par les options
backup
,backupcopy
etwritebackup
. Par défaut, Vim renomme l'ancien fichier, puis écrit un nouveau fichier avec le nom d'origine, s'il pense qu'il peut recréer les attributs du fichier d'origine. Si vous souhaitez réutiliser l'inode existant (et donc risquer de perdre des données ou perdre plus de temps à faire une copie de sauvegarde), ajoutez-leset backupcopy yes
à votre.vimrc
.la source
writebackup
parce que j'ai déjà éteintbackup
etbackupcopy
que l'inode changeait toujours.