Что такое # file # и file ~ и как я могу от них избавиться? - программирование

Что такое # file # и file ~ и как я могу от них избавиться?

У меня изначально было три файла: makefile, readme.txt и hashtable.c в моем каталоге, где я пишу свой код в emacs. Я заметил, что были созданы несколько новых файлов: #hashtable.c#, #readme.txt#, hashtable.c~ и makefile~. Мне было интересно, что это за файлы. Являются ли эти важные, а если нет, то как я могу сказать emacs прекратить их делать? Мне также интересно, почему readme.txt не получает файл тильды, а makefile не получает острый файл.

4b9b3361

Ответ 1

Файл с ~ - это файл резервной копии, который автоматически создается при сохранении файла. # readme.txt # - это файл, который в настоящее время редактируется/используется (т.е. Версия автосохранения). Это обычно уходит (в отличие от файла ~), когда вы обычно выходите из emacs (если он сбой или его убивают, файлы # могут оставаться на месте).

Вы можете найти эту страницу о emacs backup files, и этот вопрос SO: How я могу контролировать, как Emacs создает резервные файлы?

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

(setq make-backup-files nil)

Ответ 2

Для # файлов # вам нужно сделать rm "#file#" с терминала, потому что rm #file# не работает. Для ~ файла вы можете просто цифра rm ~file.

Ответ 3

Я рекомендую установку no-littering. Он автоматически помещает файлы резервных копий (file~) в ~/.emacs.d/var/backup/. Он ничего не делает с автосохранениями (#file#), но есть примечание о том, что эти файлы помещаются в указанный каталог в README:

(setq auto-save-file-name-transforms
      '((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))

Ни одна из этих вещей на самом деле не мешает Emacs создавать эти файлы, но я предполагаю, что большинство людей на самом деле хотят эти файлы (в случае сбоя), но не хотят, чтобы они были разбросаны по всей файловой системе.

Ответ 4

Может быть, вы могли бы попробовать:

find. -name \\#*\\# | xargs rm

Предупреждение: это удалит те файлы, совпадающие в подкаталогах.