почему значение inode изменяется при редактировании в редакторе vi?

Когда я редактирую файл в редакторе vi, значение inode файла изменяется. Но при редактировании с помощью команды cat значение inode не изменяется.

  • Сопоставление фонового цвета в vim и tmux
  • сопоставление режимов вставки стрелок vim
  • (G) VIM использует другую $ PATH, чем моя система
  • Как исправить Ctrl + стрелки в Vim?
  • vim с вкладкой / пробелом в многострочных аббревиатурах в vimrc
  • Поиск и замена следующих n слов в vi
  • Вызов латекса от vim прекратил работу
  • Изменение числового значения в файле с помощью Vim из сценария
  • 2 Solutions collect form web for “почему значение inode изменяется при редактировании в редакторе vi?”

    Скорее всего, вы установили опцию резервного копирования , а backupcopy – на «no» или «breakhardlink».

    Если вы хотите изменить файл, у вас есть два варианта, каждый из которых имеет свои преимущества и недостатки.

    • Вы можете перезаписать файл на месте. Это не использует лишнее пространство и сохраняет жесткие ссылки, разрешения и любой другой атрибут за пределами содержимого существующего файла. Главный недостаток этого заключается в том, что если что-то происходит во время записи файла (сбой приложения или выключение питания), вы получаете частично написанный файл.
    • Вы можете записать новую версию файла в новый файл с другим именем, а затем переместить его на место. Это использует больше места и разбивает жесткие ссылки, и если у вас есть права на запись в файле, но не в каталоге, который он содержит, вы не можете сделать это вообще. С другой стороны, старая версия файла атомарно заменяется новой версией, поэтому в каждый момент времени имя файла указывает на действительную полную версию файла.

    Расширенные редакторы, такие как Vim или Emacs, могут выбирать между двумя способами. Когда они используют первый метод, они обычно делают резервный файл первым, который можно восстановить, если новое содержимое файла не может быть написано правильно.

    Классический vi перезаписывает файл на месте. Поэтому индекс inode не изменяется.

    В Vim, как уже указывал cjm , выбор контролируется параметрами backup , backup и writebackup . По умолчанию Vim переименовывает старый файл, а затем записывает новый файл с исходным именем, если он считает, что он может воссоздать атрибуты исходного файла. Если вы хотите повторно использовать существующий inode (и, следовательно, рискуете потерять данные или потратите больше времени на создание резервной копии), добавьте set backupcopy yes в ваш .vimrc .

    Interesting Posts

    Псевдоним для «cd», который показывает текущий каталог каждый раз, когда меняю каталоги?

    Как получить флаги компилятора, которые используются для сборки двоичных файлов в пакете (.deb)?

    Как сопоставить идентификаторы жесткого диска Linux, такие как «sd 3: 0: 0: 0:», например, «ata8:»?

    Количество вхождений букв в слово?

    nginx не запускается: getpwnam ("nginx") не удалось выполнить в /etc/nginx/nginx.conf:5

    восстановить suse grub

    Как монтировать Clonezilla img для извлечения файлов?

    Как разрешить пользователям монтировать общие ресурсы Windows

    Проблема с HP EliteBook 8530p wifi (жестко заблокирована) в Qubes OS

    Найти и заменить различные столбцы с помощью awk

    Поделитесь моей папкой Windows 7 C с другим настольным компьютером Lenovo Ubuntu Linux 15.10

    Использовать awk-результаты в качестве параметров для другой команды

    Сценарий Bash не работает, не меняет каталог

    Debian: как сравнивать и вычислять отпечатки пальцев отдельного пакета?

    Перенаправление stderr скрипта Ruby не работает должным образом

    Linux и Unix - лучшая ОС в мире.