วิธีตรวจสอบให้แน่ใจว่าไม่มีการเปลี่ยนแปลงเกิดขึ้นกับไฟล์


11

มีอยู่แล้วฉันสามารถตรวจสอบให้แน่ใจว่าไฟล์ถูกล็อคเพื่อที่ฉันไม่สามารถทำการเปลี่ยนแปลงใด ๆ กับมัน มีคำสั่งสำหรับการล็อค / ปลดล็อคไฟล์ในกลุ่ม บางครั้งฉันต้องการไฟล์ให้อยู่ในโหมดอ่านอย่างเดียว

คำตอบ:


12

คุณสามารถตั้งค่าไฟล์เป็นแบบอ่านอย่างเดียวและไม่สามารถแก้ไขได้

:set readonly
:set nomodifiable

สำหรับความช่วยเหลือเพิ่มเติมดู:

:h 'readonly'
:h 'modifiable'

1
คุณยังสามารถใช้vim -Rหรือviewเพื่อเปิดไฟล์โดยอัตโนมัติด้วยreadonlyชุด (ดู:help -R)
Martin Tournoij

9

วิธีที่ง่ายที่สุดคือเปิดไฟล์โดยใช้-Rแฟล็กเมื่อเปิดไฟล์เพื่อตั้งค่าreadonlyตัวเลือก

vim -R filename.txt
vi -R filename.txt

สำหรับ Vim คุณสามารถใช้คำสั่งviewเมื่อเปิดไฟล์ซึ่งเทียบเท่ากับvim -R:

view filename.txt

โปรดทราบว่าตัวเลือกที่อ่านได้อย่างเดียวไม่ได้ป้องกันการเขียนบังคับ หากคุณใช้:w!ไฟล์จะถูกเขียนโดยไม่คำนึงถึง อย่างไรก็ตามเนื่องจากมาตรการด้านความปลอดภัยสำหรับ "ลุคดูไม่ได้สัมผัส" -Rจะมีประโยชน์มากในการป้องกันการเขียนโดยไม่ตั้งใจ

วิธีแก้ปัญหาอื่นที่คุณสามารถใช้คือเปิดบัฟเฟอร์ไฟล์ที่ว่างเปล่าและอ่านในไฟล์ที่คุณต้องการดู:

vim
# Then, from inside vim:
:r filename.txt

สิ่งนี้ค่อนข้างปลอดภัยเนื่องจากคุณมีบัฟเฟอร์ที่ไม่มีชื่อ - คุณไม่สามารถเขียนทับไฟล์ที่คุณอ่านโดยไม่ได้ตั้งใจ (แม้ว่าคุณสามารถทำได้โดยจงใจหากคุณพิมพ์ชื่อไฟล์อีกครั้ง) อย่างไรก็ตามคุณอาจไม่ได้รับการเน้นไวยากรณ์อัตโนมัติด้วยวิธีนี้ทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณ


ในหลาย Unices viewไบนารีมักจะเป็นฮาร์ดลิงก์ของviไบนารีและในระบบเหล่านั้นแม้เป็นปกติviเมื่อเห็นว่ามันถูกเรียกใช้viewแล้วจะเปิดไฟล์ในโหมดอ่านอย่างเดียว ดังนั้นมันจึงไม่ได้เป็นเสียงเรียกเข้าเท่านั้น
Olivier Dulac

@OlivierDulac อาจจะไม่ แต่ผมไม่เห็นมันระบุไว้ใน POSIX-ทั้งสำหรับexหรือสำหรับ vivi -R มีการระบุไว้
Wildcard

จุดดี. upvoted
Olivier Dulac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.