อะไรเป็นสาเหตุของการสร้างไฟล์สลับ?


31

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

คุณคิดว่าเกิดอะไรขึ้น อะไรจะทำให้ไฟล์ swap ปรากฏขึ้นหากคุณต้องสร้างปัญหาขึ้นมาใหม่

คำตอบ:


41

ไฟล์. swp ไม่ใช่ไฟล์สลับในความหมายของระบบปฏิบัติการ เป็นไฟล์สถานะ มันเก็บการเปลี่ยนแปลงของคุณตั้งแต่การบันทึกครั้งล่าสุด (ยกเว้น 200 ตัวอักษรล่าสุด) บัฟเฟอร์ที่คุณบันทึกมาโครที่ยังไม่ได้บันทึกและโครงสร้างเลิกทำ

คุณสามารถอ่านเพิ่มเติมในความช่วยเหลือของ vim +help\ swap-fileVIM: หากมีข้อผิดพลาด (ไฟฟ้าขัดข้อง, OS ขัดข้อง ฯลฯ ) คุณสามารถกู้คืนการเปลี่ยนแปลงโดยใช้ไฟล์ swap นี้ หลังจากบันทึกการเปลี่ยนแปลงจากไฟล์สลับเป็นไฟล์ต้นฉบับคุณจะต้องออกเป็นกลุ่มและลบไฟล์สลับด้วยตัวเอง


ด้วยเหตุผลบางอย่างไฟล์ ~ / .swp ของฉันคือ 11.7GB ฉันเพิ่งลบมัน
Daniel Cheung

19

.swpไฟล์ถูกสร้างโดยVimไฟล์เหล่านั้นควรถูกลบโดยอัตโนมัติเมื่อคุณปิดไฟล์และออกจากโปรแกรมแก้ไข


1
พวกเขาสามารถสร้างขึ้นมาจากนอกVim? ในกรณีที่ไฟล์ของฉันถูกเขียนจากโปรแกรมของฉันโดยตรงโดยไม่ต้องใช้โปรแกรมแก้ไข
JAM

@JAM: โปรแกรมนี้เขียนด้วยภาษาและห้องสมุดอะไร?
jwodder

5
@JAM โดยทั่วไปไม่มันเป็นคุณสมบัติที่เป็นกลุ่ม ฉันสงสัยว่าไฟล์เหล่านี้กำลังถูกเขียนโดยตรงจากโปรแกรมของคุณโดยที่คุณไม่รู้ตัวมันไม่สมเหตุสมผล มีความเป็นไปได้มากกว่าที่คุณสับสนไฟล์เหล่านี้จะถูกสร้างขึ้นในขณะที่คุณแก้ไขไฟล์ด้วย Vim และคุณได้นำมาประกอบกับโปรแกรมของคุณ
Juliano

4

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


2

ฉันเพิ่งรันคำสั่ง mv ในไฟล์ 31GB และสร้างไฟล์. swp ขนาด 13GB แล้วไม่มีการแก้ไขใด ๆ

mv X.csv Y.csv สร้าง Y.csv และ. Y.csv.swp

CentOS 6.5, ระบบไฟล์ ext4


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