Emacs24のdiredで印付けた物をtar玉にします。プレフィックス(C-u)が付いていれば、xzに圧縮します。
- ;; diredでまとめてtar玉に
- (defun dired-tar (tarname files &optional arg)
- "A dired-mode extension to archive files marked. With prefix argument, the tarball is xziped."
- (interactive (let ((files (dired-get-marked-files)))
- (list (read-string "Tarball name: " (concat (file-relative-name (car files)) ".tar.xz"))
- files "P")))
- (let ((tar (if arg "tar Jcf %s %s" "tar cf %s %s")))
- (shell-command (format tar tarname (mapconcat 'file-relative-name files " ")))))
- (add-hook 'dired-load-hook (lambda () (define-key dired-mode-map "T" 'dired-tar)))