diredでファイルの一時バックアップ

バージョン管理するほどじゃないときに、ファイル名.YYYYMMDD-hhmm~でバックアップする。原始的だけど、便利だから仕方ないね。

;; 一つのファイルまたはマークされたファイルのバックアップ
(defun my-dired-backup ()
  (interactive)
  (let* ((files (dired-get-marked-files))
         (date (format-time-string "%Y%m%d-%H%M")))
    (mapc '(lambda (file)
             (let ((backup (format "%s.%s~" file date)))
               (dired-copy-file file backup nil)))
          files)
    (revert-buffer)))
(define-key dired-mode-map "\C-cb" 'my-dired-backup)

シェルスクリプトも作っておくか。
backup.sh

#!/bin/sh

DATE=`date +%Y%m%d-%H%M`
while [ $# -gt 0 ] ; do
    cp -a "$1" "$1.${DATE}~"
    shift
done