Penghapusan otomatis file cadangan

9

Saat mengedit file, beberapa foo.bar~ cadangan muncul (file berakhir dengan tilde ~). Bagaimana saya bisa mengontrol kreasi mereka, dan apakah mungkin untuk meminta penghapusan massal rekursif dari semua file dari direktori tertentu dan semua sub direktori?

Smonff
sumber
Sebenarnya ada 2 pertanyaan di sini; "Bagaimana saya bisa mengontrol kreasi mereka" sepertinya merupakan duplikat sebagian dari emacs.stackexchange.com/questions/33/…
shosti

Jawaban:

8

Anda dapat membuat semua file cadangan untuk masuk ke direktori

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

dan matikan sepenuhnya dengan

(setq make-backup-files nil)

meskipun tidak ada yang akan merekomendasikan itu.

Membuat cadangan hanya untuk beberapa proyek tidak mudah: Anda harus membalik variabel itu dalam berbagai kait.

Akhirnya, meminta penghapusan massal sama dengan:

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

jadi Anda mungkin lebih baik melakukannya di shell.

artagnon
sumber
mungkin menggunakan -delete dan bukannya -exec, itu jauh lebih cepat karena tidak menelurkan proses baru.
Xah Lee
4

diredmembuatnya mudah untuk menghapus semua file cadangan dalam direktori - mulai dari dired, cukup ketik ~untuk menandai file cadangan untuk dihapus dan xuntuk menjalankan penghapusan.

shosti
sumber
3

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

Anda dapat menyesuaikan variabel backup-direktori-alist untuk menentukan bahwa file yang cocok dengan pola tertentu harus didukung di direktori tertentu. Variabel ini berlaku untuk cadangan tunggal dan bernomor. Penggunaan khas adalah menambahkan elemen (".". Dir) untuk membuat semua cadangan dalam direktori dengan nama absol; Emacs memodifikasi nama file cadangan untuk menghindari bentrokan antara file dengan nama yang sama yang berasal dari direktori yang berbeda. Atau, menambahkan, (".". ". ~") Akan membuat cadangan di subdirektori tidak terlihat. ~ Dari direktori file asli. Emacs membuat direktori, jika perlu, untuk membuat cadangan.

Jika Anda mendefinisikan variabel make-backup-file-name-function ke fungsi Lisp yang sesuai, itu menimpa cara biasa Emacs membangun nama file cadangan.

Anda juga dapat mengatur EMACS untuk menyimpan cadangan bernomor dan hanya menyimpan jumlah cadangan tertentu, meskipun ini mungkin lebih buruk daripada hanya satu cadangan untuk setiap file. Lihat https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Deletion.html

M Smith
sumber