Jak usunąć wszystkie pliki kończące się ~ made by Emacs

Ilekroć edytuję pliki w Emacsie, wydaje się, że tworzony jest tymczasowy plik o tej samej nazwie z dopiskiem~. Czy ktoś zna szybki/łatwy sposób na usunięcie wszystkich tych plików w katalogu roboczym?

Author: ShreevatsaR, 2010-04-21

7 answers

Podczas gdy wszystkie pozostałe odpowiedzi tutaj poprawnie wyjaśniają, jak usunąć Pliki, powinieneś zrozumieć, co się dzieje. Pliki kończące się ~ są plikami backup , tworzonymi automatycznie przez Emacsa. Czasami mogą być przydatne. Jeśli denerwują cię Te pliki i chcesz je usuwać za każdym razem, to albo

(1). zapobiega tworzeniu plików kopii zapasowych:

(setq make-backup-files nil)

Lub

(2). Niech zapisze pliki kopii zapasowej w innym katalogu, gdzie nie będą Ci przeszkadzać chyba, że ich poszukasz. Mam następujące rzeczy w moim .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
  )

(tylko pierwsza linia jest kluczowa.) Aby zobaczyć dokumentację backup-directory-alist, wpisz C-h V backup-directory-alist.

 79
Author: ShreevatsaR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 06:06:21
find . -name '*~' -exec rm {} \;

EDIT: .. podczas gdy to działa, opublikowałem go myśląc, że rm *~ spowoduje interpolację powłoki ~ do katalogu domowego użytkownika. Nie ma, przynajmniej z wersją Basha na tej maszynie-YMMV, oczywiście.

Niektóre wersje find mają opcję -delete:

find . -name '*~' -delete
 28
Author: Brian Roach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-25 22:59:45

Możesz po prostu

rm *\~

Bardziej użyteczne, możesz zmienić katalog kopii zapasowych emacs tak, aby wszystkie te pliki były przechowywane we wspólnej lokalizacji, dodając to do twojego.emacs:

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

Istnieją inne opcje, z którymi możesz się bawić

 9
Author: Michael Mrozek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 04:51:47

Z katalogu roboczego:

$ rm *~

Zewsząd:

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

Z Emacsa, używając dired.

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

Możesz trwale wstrzymać tworzenie pliku kopii zapasowej, dodając następującą linię do~/.emacs

(setq make-backup-files nil)

Nie polecam tego ostatniego, Ponieważ pliki kopii zapasowych Emacsa zapisywały mnie wiele razy na przestrzeni lat.

 6
Author: Dale Hagglund,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 04:52:13
rm -rf *~ 
 5
Author: YOU,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 04:51:13

Możesz otworzyć katalog w Emacsie, oznaczyć wszystkie pliki kopii zapasowej ~, a następnie usunąć je za pomocą x

 4
Author: Rémi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-21 05:50:11

W trybie eamcs dired:

D Oznacz ten plik do usunięcia.

U Usuń flagę delete w tej linii.

DEL Przesuń punkt do poprzedniego wiersza i usuń flagę delete w tym wierszu.

X Usuń pliki oznaczone do usunięcia.

#: Oznacz wszystkie automatycznie zapisywane pliki (pliki, których nazwy zaczynają się i kończą na `#') do usunięcia

~: Oznacz wszystkie pliki kopii zapasowej (pliki, których nazwy kończą się na'~') do usunięcia

&: Flaga do usunięcia wszystkich plików z pewnymi rodzajami nazw, nazwami, które sugerują, że można łatwo utworzyć pliki ponownie

. : Zaznacz nadmiar numerycznych plików kopii zapasowych do usunięcia. Najstarsze i najnowsze kilka plików kopii zapasowych dowolnego pliku są wyłączone; środkowe są oznaczone.

% d regexp RET: Flaga do usunięcia wszystkich plików, których nazwy pasują do wyrażenia regularnego regexp.

 3
Author: Sid Sarasvati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-05 19:05:02