すべてのバックアップを1つのバックアップフォルダーに入れる


15

すべてのバックアップが1つのバックアップフォルダーに配置されるようにEmacsを設定するにはどうすればよいですか?例えば/MyEmacsBackups


これにより、オリジナルが移動/削除された後でも、機密情報がマシン上に残るという意図しない副作用が生じる可能性があることに注意してください。このバックアップフォルダを時々消去することをお勧めします。これらのバックアップファイルには、元のファイルとは異なるアクセス許可が設定されている場合もあります。
nispio 14

回答:


17

チェックアウトbackup-directory-alistファイルの正規表現によるバックアップの場所を設定することを可能にします、。すべてを1つのディレクトリに移動するには、次のようにします。

(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))

本当に妄想的な(私のように)ためにbackup-each-saveもあります。これは(名前が示すように)便利な場所に保存されるたびにファイルをバックアップします。これにより、たとえば、何かをチェックインせずに誤って作業ディレクトリをクリアしてしまった場合など、従来のバージョン管理よりも保護が強化されます。


11

以下は私のからの簡単なコード.emacsです。バックアップを特定のディレクトリに保存するだけでなく、自動保存も行います。また、trampファイルに対しても同じことを行い、リモートシステムに保存されないようにします。

;; Put backup files neatly away                                                 
(let ((backup-dir "~/tmp/emacs/backups")
      (auto-saves-dir "~/tmp/emacs/auto-saves/"))
  (dolist (dir (list backup-dir auto-saves-dir))
    (when (not (file-directory-p dir))
      (make-directory dir t)))
  (setq backup-directory-alist `(("." . ,backup-dir))
        auto-save-file-name-transforms `((".*" ,auto-saves-dir t))
        auto-save-list-file-prefix (concat auto-saves-dir ".saves-")
        tramp-backup-directory-alist `((".*" . ,backup-dir))
        tramp-auto-save-directory auto-saves-dir))

(setq backup-by-copying t    ; Don't delink hardlinks                           
      delete-old-versions t  ; Clean up the backups                             
      version-control t      ; Use version numbers on backups,                  
      kept-new-versions 5    ; keep some new versions                           
      kept-old-versions 2)   ; and some old ones, too                           


0

これを初期化ファイルに入れます。選択したバックアップディレクトリへのパスを変更します。

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.