Function: eshell-shorthand-tar-command
eshell-shorthand-tar-command is a byte-compiled function defined in
em-unix.el.gz.
Signature
(eshell-shorthand-tar-command COMMAND ARGS)
Documentation
Rewrite cp -v dir a.tar.gz to tar cvzf a.tar.gz dir.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-unix.el.gz
(defun eshell-shorthand-tar-command (command args)
"Rewrite `cp -v dir a.tar.gz' to `tar cvzf a.tar.gz dir'."
(let* ((archive (car (last args)))
(tar-args
(cond ((string-match "z2" archive) "If")
((string-match "gz" archive) "zf")
((string-match "\\(az\\|Z\\)" archive) "Zf")
(t "f"))))
(if (file-exists-p archive)
(setq tar-args (concat "u" tar-args))
(setq tar-args (concat "c" tar-args)))
(if em-verbose
(setq tar-args (concat "v" tar-args)))
(if (equal command "mv")
(setq tar-args (concat "--remove-files -" tar-args)))
;; truncate the archive name from the arguments
(setcdr (last args 2) nil)
(throw 'eshell-replace-command
(eshell-parse-command
(format "tar %s %s" tar-args archive) args))))