Suppression automatique des fichiers de sauvegarde

9

Lors de l'édition de fichiers, certaines foo.bar~ sauvegardes apparaissent (fichiers se terminant par un tilde ~). Comment puis-je contrôler leurs créations et est-il possible de demander une suppression en bloc récursive de tous les fichiers d'un répertoire spécifique et de tous ses sous-répertoires?

smonff
la source
Il y a vraiment 2 questions ici; "Comment puis-je contrôler leurs créations" ressemble à un double partiel d' emacs.stackexchange.com
questions

Réponses:

8

Vous pouvez créer tous les fichiers de sauvegarde pour aller dans un répertoire avec

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

et éteignez-le complètement avec

(setq make-backup-files nil)

bien que personne ne le recommande.

Faire des sauvegardes pour seulement certains projets n'est pas facile: vous devrez retourner cette variable dans différents hooks.

Enfin, demander une suppression en masse équivaut exactement à:

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

donc vous feriez peut-être mieux de le faire dans le shell.

artagnon
la source
peut utiliser -delete au lieu de -exec, c'est beaucoup plus rapide car il ne génère pas de nouveau processus.
Xah Lee
4

diredfacilite la suppression de tous les fichiers de sauvegarde dans un répertoire - de dired, tapez simplement ~pour marquer les fichiers de sauvegarde pour suppression et xpour exécuter la suppression.

shosti
la source
3

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

Vous pouvez personnaliser la variable backup-directory-alist pour spécifier que les fichiers correspondant à certains modèles doivent être sauvegardés dans des répertoires spécifiques. Cette variable s'applique aux sauvegardes simples et numérotées. Une utilisation typique consiste à ajouter un élément (".". Dir) pour effectuer toutes les sauvegardes dans le répertoire avec le nom absolu dir; Emacs modifie les noms des fichiers de sauvegarde pour éviter les conflits entre les fichiers portant les mêmes noms provenant de répertoires différents. Alternativement, l'ajout de (".". ". ~") Effectuerait des sauvegardes dans le sous-répertoire invisible. ~ Du répertoire du fichier d'origine. Emacs crée le répertoire, si nécessaire, pour effectuer la sauvegarde.

Si vous définissez la variable make-backup-file-name-function sur une fonction Lisp appropriée, cela remplace la manière habituelle qu'Emacs construit les noms des fichiers de sauvegarde.

Vous pouvez également configurer EMACS pour conserver des sauvegardes numérotées et ne conserver qu'un nombre donné de sauvegardes, bien que cela puisse être pire qu'une simple sauvegarde pour chaque fichier. Voir https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Deletion.html

M Smith
la source