emacs จะบันทึกไฟล์เป็นค่าเริ่มต้นอย่างไร


3

โดยทั่วไปแอปพลิเคชันจะทำการบันทึกปรมาณูโดยการเปลี่ยนชื่อไฟล์เก่าและเขียนไฟล์ใหม่เข้าที่หรือโดยการเขียนไฟล์ชั่วคราวแล้วแทนที่ไฟล์เก่าด้วยไฟล์ชั่วคราวใหม่ emacs ตัวใดที่ทำสิ่งเหล่านี้ ฉันพบ ลิงค์นี้ เพื่อการสนทนาแก้ไข แต่ฉันไม่เข้าใจสิ่งที่เกิดขึ้น

คำตอบ:


2

คำตอบก็คือมันขึ้นอยู่กับปัจจัยทุกประเภท

ก่อนอื่นโปรดทราบว่า "การเปลี่ยนชื่อไฟล์เก่าและการเขียนไฟล์ใหม่แทนที่" ไม่ใช่อะตอมมิก

Emacs สามารถบันทึกได้หลายวิธี:

  • เปลี่ยนชื่อไฟล์เก่า + เขียนแทน (ไม่ใช่อะตอมมิก, แบ่งลิงก์)
  • อย่าเปลี่ยนชื่อเขียนทับไฟล์ที่มีอยู่ (ไม่ใช่แบบอะตอมมิกไม่ทำลายลิงก์)
  • เขียนเป็นไฟล์ใหม่จากนั้นเปลี่ยนชื่อ (อะตอมมิกทำลายลิงค์)

โปรดทราบว่า "การเชื่อมโยงหยุดพัก" หมายถึงไฟล์ใหม่อาจมีสิทธิ์ / เจ้าของ / ...

ในกรณีส่วนใหญ่ Emacs จะใช้วิธีที่สอง (เพื่อรักษาลิงก์และการอนุญาต) แต่ถ้าจะต้องทำการแบ็คอัพไฟล์ (ตาม make-backup-files ) จากนั้นก็มักจะใช้วิธีแรก (โดยที่การเปลี่ยนชื่อถูกใช้เพื่อสร้างการสำรองข้อมูล) แม้ว่าจะขึ้นอยู่กับ backup-by-copying (รวมถึงตัวแปรอื่น ๆ ที่มีชื่อที่ขึ้นต้นด้วย backup-by-copying-when- ) เช่นเดียวกับ file-precious-flag และ break-hardlink-on-save.


เป็นคำถามที่ดีคำตอบที่ดี ดูเพิ่มเติมที่ Emacs manual, node การสำรองข้อมูล และคู่มือ Elisp, node กำลังสำรองข้อมูล .
Drew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.