Как удалить все файлы, заканчивающиеся на ~, сделанные Emacs - PullRequest
39 голосов
/ 21 апреля 2010

Всякий раз, когда я редактирую файлы в emacs, создается впечатление, что временный файл создается с тем же именем, к которому добавляется ~.Кто-нибудь знает быстрый / простой способ удалить все эти файлы в рабочем каталоге?

Ответы [ 7 ]

87 голосов
/ 21 апреля 2010

В то время как все остальные ответы здесь правильно объясняют, как удалить файлы, вы должны понимать, что происходит. Эти файлы, оканчивающиеся на ~, являются backup файлами, автоматически созданными Emacs. Иногда они могут быть полезны. Если вас раздражают файлы и вы хотите их удалять каждый раз, тогда вы либо

(1). запретить создание файлов резервных копий:

(setq make-backup-files nil)

или

(2). Пусть он сохранит файлы резервных копий в другом каталоге, где они не будут вас беспокоить, если вы не будете их искать. В моем .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
  )

(решающим является только первая строка.) Чтобы просмотреть документацию по backup-directory-alist, введите C-h v backup-directory-alist .

30 голосов
/ 21 апреля 2010
find . -name '*~' -exec rm {} \;

РЕДАКТИРОВАТЬ: Да ... пока это работает, я опубликовал это, думая, что rm *~ заставит оболочку интерполировать ~ в домашнюю директорию пользователя. Это не так, по крайней мере с версией bash на этой машине - YMMV, конечно.

Некоторые версии find имеют опцию -delete:

find . -name '*~' -delete
9 голосов
/ 21 апреля 2010

Вы можете просто

rm *\~

Более полезно, вы можете изменить каталог резервного копирования emacs, чтобы все эти файлы хранились в общем месте, добавив это в ваш .emacs:

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

Есть другие опции, которые вы можете использовать с

6 голосов
/ 21 апреля 2010

Из рабочего каталога:

$ rm *~

Отовсюду:

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

Изнутри Emacs, используя dired.

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

Вы можете навсегда прекратить создание файла резервной копии, добавив следующую строку в ~ / .emacs

(setq make-backup-files nil)

Я не рекомендую этот последний вариант, так как файлы резервных копий emacs сохраняли меня много раз.

5 голосов
/ 21 апреля 2010
rm -rf *~ 
4 голосов
/ 21 апреля 2010

Вы можете открыть каталог в emacs, отметить все файлы резервных копий с помощью ~, а затем удалить их с помощью x

3 голосов
/ 05 сентября 2014

В режиме eamcs:

d Пометить этот файл для удаления.

u Удалить флаг удаления в этой строке.

DEL Переместить точку на предыдущую строку и убрать флаг удаления на этой строке.

x Удалить файлы, помеченные для удаления.

#: Пометить все файлы автосохранения (файлы, имена которых начинаются и заканчиваются на `# ') для удаления

~: помечать все файлы резервных копий (файлы, имена которых заканчиваются на `~ ') для удаления

&: пометка для удаления всех файлов с определенными именами, именами, которые предполагают, что вы можете легко создать файлы снова

. : Пометить избыточные числовые резервные файлы для удаления. Самые старые и новейшие файлы резервных копий какого-либо одного файла освобождаются; средние помечены.

% d regexp RET: флаг для удаления всех файлов, имена которых соответствуют регулярному выражению regexp.

...