Автоматическое удаление файлов резервных копий

9

При редактировании файлов foo.bar~ появляются некоторые резервные копии (файлы, заканчивающиеся тильдой ~). Как я могу контролировать их создание и можно ли запросить рекурсивное массовое удаление всех файлов из определенного каталога и всех его подкаталогов?

smonff
источник
Здесь действительно 2 вопроса; «Как я могу контролировать их творения» выглядит как частичный дубликат emacs.stackexchange.com/questions/33/…
shosti

Ответы:

8

Вы можете сделать все файлы резервных копий, чтобы перейти в каталог с

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

и выключить его полностью с

(setq make-backup-files nil)

хотя никто не будет рекомендовать это.

Делать резервные копии только для некоторых проектов непросто: вам придется переворачивать эту переменную различными хуками.

Наконец, запрос на массовое удаление в точности соответствует:

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

так что вам может быть лучше сделать это в оболочке.

artagnon
источник
может использовать -delete вместо -exec, это намного быстрее, потому что это не порождает новый процесс.
Ха Ли
4

diredпозволяет легко удалить все файлы резервных копий в каталоге - diredпросто наберите, ~чтобы пометить файлы резервных копий для удаления и xвыполнить удаление.

shosti
источник
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.

М Смит
источник