การลบไฟล์สำรองโดยอัตโนมัติ


9

เมื่อแก้ไขไฟล์foo.bar~ ข้อมูลสำรองบางอย่างจะปรากฏขึ้น (ไฟล์ที่ลงท้ายด้วยตัวหนอน ~) ฉันจะควบคุมการสร้างของพวกเขาได้อย่างไรและเป็นไปได้ไหมที่จะขอให้ลบไฟล์จำนวนมากแบบเรียกซ้ำทั้งหมดจากไดเรกทอรีเฉพาะและไดเรกทอรีย่อยทั้งหมด


ที่นี่มีคำถาม 2 ข้อจริง ๆ ; "ฉันจะควบคุมการสร้างสรรค์ของพวกเขาได้อย่างไร" ดูเหมือนจะซ้ำซ้อนบางส่วนของemacs.stackexchange.com/questions/33/…
shosti

คำตอบ:


8

คุณสามารถสร้างไฟล์สำรองทั้งหมดเพื่อไปยังไดเร็กตอรี่ได้

(setq backup-directory-alist `(("." . "~/.emacs.bak")))

และปิดมันอย่างสมบูรณ์ด้วย

(setq make-backup-files nil)

แม้ว่าจะไม่มีใครแนะนำ

การสำรองข้อมูลสำหรับบางโครงการเท่านั้นไม่ใช่เรื่องง่าย: คุณจะต้องพลิกตัวแปรนั้นใน hooks ต่างๆ

ในที่สุดการขอลบจำนวนมากจะเท่ากับ:

find . -name '*~' -exec rm {} \;

ดังนั้นคุณน่าจะทำได้ดีกว่าในเปลือก


อาจใช้ -delete แทน -exec มันเร็วกว่ามากเพราะไม่ได้สร้างกระบวนการใหม่
Xah Lee

4

diredทำให้ง่ายต่อการลบไฟล์สำรองทั้งหมดในไดเรกทอรี - จากdiredเพียงพิมพ์~เพื่อทำเครื่องหมายไฟล์สำรองสำหรับการลบและxดำเนินการลบ


3

จากhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Names.html#Backup-Names

คุณสามารถปรับแต่งตัวแปร backup-directory-alist เพื่อระบุว่าไฟล์ที่ตรงกับรูปแบบบางอย่างควรสำรองในไดเรกทอรีเฉพาะ ตัวแปรนี้ใช้กับการสำรองข้อมูลทั้งแบบเดี่ยวและแบบตัวเลข การใช้งานทั่วไปคือการเพิ่มองค์ประกอบ (".". dir) เพื่อทำการสำรองข้อมูลทั้งหมดในไดเรกทอรีที่มีชื่อแน่นอน dir; Emacs แก้ไขชื่อไฟล์สำรองเพื่อหลีกเลี่ยงการปะทะกันระหว่างไฟล์ที่มีชื่อเดียวกันที่มีต้นกำเนิดในไดเรกทอรีต่าง ๆ อีกวิธีหนึ่งคือการเพิ่ม (".". ". ~") จะทำการสำรองข้อมูลในไดเรกทอรีย่อยที่มองไม่เห็น ~ ของไดเรกทอรีของไฟล์ต้นฉบับ Emacs สร้างไดเรกทอรีหากจำเป็นเพื่อทำการสำรองข้อมูล

หากคุณกำหนดตัวแปร make-backup-file-name-function ให้เป็นฟังก์ชั่น Lisp ที่เหมาะสมซึ่งจะแทนที่วิธีปกติที่ Emacs สร้างชื่อไฟล์สำรอง

นอกจากนี้คุณยังสามารถตั้งค่า EMACS เพื่อเก็บสำรองข้อมูลที่มีหมายเลขและเก็บสำรองข้อมูลตามจำนวนที่กำหนดไว้เท่านั้นแม้ว่าอาจจะแย่กว่าการสำรองข้อมูลเพียงครั้งเดียวสำหรับแต่ละไฟล์ ดูhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Deletion.html

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