Automatisches Löschen von Sicherungsdateien

9

Beim Bearbeiten von Dateien werden einige foo.bar~ Sicherungen angezeigt (Dateien, die mit einer Tilde ~ enden ). Wie kann ich ihre Kreationen steuern und kann eine rekursive Massenlöschung aller Dateien aus einem bestimmten Verzeichnis und allen Unterverzeichnissen angefordert werden?

smonff
quelle
Hier gibt es wirklich zwei Fragen. "Wie kann ich ihre Kreationen kontrollieren ?"
Scheint

Antworten:

8

Sie können alle Sicherungsdateien in ein Verzeichnis verschieben

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

und schalten Sie es mit vollständig aus

(setq make-backup-files nil)

obwohl niemand das empfehlen wird.

Das Erstellen von Backups nur für einige Projekte ist nicht einfach: Sie müssen diese Variable in verschiedenen Hooks umdrehen.

Schließlich ist das Bitten um Massenlöschung genau gleichbedeutend mit:

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

Vielleicht ist es besser, das in der Shell zu tun.

Artagnon
quelle
Wenn Sie -delete anstelle von -exec verwenden, ist dies viel schneller, da kein neuer Prozess erzeugt wird.
Xah Lee
4

diredmacht es einfach , all Backup - Dateien in einem Verzeichnis zu löschen - aus dired, geben Sie einfach ~zu Backup - Dateien zum Löschen markieren und um xdas Löschen auszuführen.

shosti
quelle
3

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

Sie können die Variable backup-directory-alist anpassen, um anzugeben, dass Dateien, die bestimmten Mustern entsprechen, in bestimmten Verzeichnissen gesichert werden sollen. Diese Variable gilt sowohl für einzelne als auch für nummerierte Sicherungen. Eine typische Verwendung besteht darin, ein Element (".". Dir) hinzuzufügen, um alle Sicherungen im Verzeichnis mit dem absoluten Namen dir zu erstellen. Emacs ändert die Namen der Sicherungsdateien, um Konflikte zwischen Dateien mit denselben Namen zu vermeiden, die aus verschiedenen Verzeichnissen stammen. Alternativ würde das Hinzufügen von (".". ". ~") Backups im unsichtbaren Unterverzeichnis. ~ Des Verzeichnisses der Originaldatei erstellen. Emacs erstellt bei Bedarf das Verzeichnis, um die Sicherung durchzuführen.

Wenn Sie die Variable make-backup-file-name-function für eine geeignete Lisp-Funktion definieren, überschreibt dies die übliche Art und Weise, wie Emacs Sicherungsdateinamen erstellt.

Sie können EMACS auch so einstellen, dass nummerierte Sicherungen und nur eine bestimmte Anzahl von Sicherungen gespeichert werden. Dies kann jedoch schlimmer sein als nur eine einzelne Sicherung für jede Datei. Siehe https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup-Deletion.html

M Smith
quelle