web-dev-qa-db-fra.com

Comment supprimer tous les fichiers se terminant par ~ créés par Emacs

Chaque fois que je modifie des fichiers sur emacs, il semble qu'un fichier temporaire soit créé avec le même nom avec ~ ajouté. Quelqu'un connaît-il un moyen rapide/facile de supprimer tous ces fichiers dans le répertoire de travail?

40
jhchen

Bien que toutes les autres réponses ici expliquent correctement comment supprimer les fichiers, vous devez comprendre ce qui se passe. Ces fichiers se terminant par ~ sont des fichiers sauvegarde, créés automatiquement par Emacs. Ils peuvent parfois être utiles. Si vous êtes ennuyé par les fichiers et que vous souhaitez les supprimer à chaque fois, vous

(1). empêcher la création de fichiers de sauvegarde:

(setq make-backup-files nil)

ou

(2). Demandez-lui d'enregistrer les fichiers de sauvegarde dans un autre répertoire, où ils ne vous dérangeront pas, sauf si vous allez les chercher. J'ai les éléments suivants dans mon .emacs:

(setq backup-directory-alist '(("." . "~/.emacs.d/backup"))
  backup-by-copying t    ; Don't delink hardlinks
  version-control t      ; Use version numbers on backups
  delete-old-versions t  ; Automatically delete excess backups
  kept-new-versions 20   ; how many of the newest versions to keep
  kept-old-versions 5    ; and how many of the old
  )

(Seule la première ligne est cruciale.) Pour voir la documentation sur backup-directory-alist, tapez C-h v backup-directory-alist.

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

EDIT: Huh ... pendant que cela fonctionne, je l'ai posté en pensant rm *~ entraînerait l'interpolation du shell ~ dans le répertoire personnel de l'utilisateur. Ce n'est pas le cas, du moins avec la version de bash sur cette machine - YMMV, bien sûr.

Certaines versions de find ont un -delete option:

find . -name '*~' -delete
31
Brian Roach

Vous pouvez juste

rm *\~

Plus utilement, vous pouvez changer le répertoire de sauvegarde emacs afin que tous ces fichiers soient stockés dans un emplacement commun, en l'ajoutant à votre .emacs:

'(backup-directory-alist (quote (("." . "/common/backup/path"))))

Il y a d'autres options avec lesquelles vous pouvez jouer

9
Michael Mrozek

Depuis le répertoire de travail:

$ rm *~

De partout:

$ cd; find . -name '*~' | xargs rm -f

Depuis emacs, en utilisant dired.

C-x C-f . RET ~ x y e s RET

Vous pouvez supprimer définitivement la création de fichiers de sauvegarde en ajoutant la ligne suivante à votre ~/.emacs

(setq make-backup-files nil)

Je ne recommande pas ce dernier, car les fichiers de sauvegarde d'emacs m'ont sauvé plusieurs fois au fil des ans.

6
Dale Hagglund

Vous pouvez ouvrir le répertoire dans emacs, marquer tous les fichiers de sauvegarde avec ~ puis supprimez-les avec x

5
Rémi
rm -rf *~ 
5
YOU

En mode dirigé eamcs:

d Marquez ce fichier pour suppression.

u Supprimer l'indicateur de suppression sur cette ligne.

DEL Déplacer le point sur la ligne précédente et supprimer l'indicateur de suppression sur cette ligne.

x Supprimez les fichiers marqués pour suppression.

#: Marquer tous les fichiers à sauvegarde automatique (fichiers dont les noms commencent et se terminent par `# ') pour suppression

~: Marquer tous les fichiers de sauvegarde (fichiers dont le nom se termine par `~ ') pour suppression

&: Marquer pour suppression tous les fichiers avec certains types de noms, noms qui suggèrent que vous pouvez facilement recréer les fichiers

. : Marquer les fichiers de sauvegarde numériques en excès pour suppression. Les fichiers de sauvegarde les plus anciens et les plus récents d'un même fichier sont exemptés; ceux du milieu sont signalés.

% d regexp RET: Indicateur de suppression de tous les fichiers dont les noms correspondent à l'expression régulière regexp.

3
Sid Sarasvati