“vi” editöründe düzenlediğimizde neden inode değeri değişiyor?


22

"Vi" editöründe bir dosyayı düzenlediğimde, dosyanın inode değeri değişiyor. Ancak cat komutu ile düzenlendiğinde, inode değeri değişmiyor.

Yanıtlar:


18

Büyük olasılıkla, yedekleme seçeneğini açık olarak ayarladınız ve yedekleme kopyayı "hayır" ya da "breakhardlink" olarak ayarladınız.


Bu seçenek nasıl kaldırılır
monu

2
@monu, düzenleyin ~/.vimrc. Bunlar varsayılan ayarlar değil.
cjm

VIM 7.4 ile @cjm, hiçbir dize vardı backupbenim, .vimrcama varsayılan etmektir çünkü inode hala değişiyordu yedek akım dosyası, sonradan silinmiş ve / * Mümkün * / adlandırmak dosyası / * yedekleme * / ve yazma için aynı adın altındaki yeni / /, inode * / 'un etkin bir şekilde değiştirilmesi . Ekleyerek çözüldü set backupcopy=yesiçin .vimrc.
Kirill Bulygin

27

Bir dosyayı değiştirmek istediğinizde, her biri yararları ve sakıncaları olan iki seçeneğiniz vardır.

  • Dosyanın yerine yazabilirsiniz. Bu, fazladan boşluk kullanmaz ve sabit bağlantıları, izinleri ve varolan dosyanın içeriğinin dışındaki diğer tüm özellikleri korur. Bunu yapmanın en büyük dezavantajı, dosya yazılırken herhangi bir şey olursa (uygulama çökerse veya güç kesilirse), kısmen yazılı bir dosya ile son bulmanızdır.
  • Dosyanın yeni sürümünü farklı bir ada sahip yeni bir dosyaya yazıp yerine taşıyabilirsiniz. Bu daha fazla alan kullanır ve zor bağlantıları keser ve bir dosyaya yazma izniniz varsa, ancak içerdiği dizinde yoksa, bunu yapamazsınız. Kapak tarafında, dosyanın eski sürümü yeni sürümle atomik olarak değiştirilir, bu nedenle her zaman dosya adı, dosyanın geçerli ve tam bir sürümünü gösterir.

Vim veya Emacs gibi gelişmiş editörler bu iki yöntem arasında seçim yapabilir. İlk yöntemi kullandıklarında, normalde ilk önce bir yedekleme dosyası yaparlar; bu, yeni dosya içerikleri doğru bir şekilde yazılamazsa kurtarılabilir.

Klasik vi, dosyanın üzerine yazar. Yani inode değişmedi.

Vim, CJM zaten ifade etmiştir , seçim tarafından kontrol edilir backup, backupcopyve writebackupseçenekler. Varsayılan olarak, Vim eski dosyayı yeniden adlandırır, sonra orijinal dosyanın özniteliklerini yeniden oluşturabileceğini düşünüyorsa, orijinal adıyla yeni bir dosya yazar. (Daha fazla zaman bir yedeğini Veri kaybını ve böylece riski veya atık) mevcut düğüm yeniden kullanmak istiyorsanız, ekleme set backupcopy yesadresinden Müşteri .vimrc.


+1 writebackupZaten kapattım backupve backupcopyinode hala değişiyordu çünkü
Alireza Mohamadi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.