Function: dired-copy-filename-as-kill

dired-copy-filename-as-kill is an interactive and byte-compiled function defined in dired.el.gz.

Signature

(dired-copy-filename-as-kill &optional ARG)

Documentation

Copy names of marked (or next ARG) files into the kill ring.

The names are separated by a space. With a zero prefix arg, use the absolute file name of each marked file. With C-u (universal-argument), use the file name relative to the Dired buffer's default-directory. (This still may contain slashes if in a subdirectory.)

If on a subdir headerline, use absolute subdirname instead; prefix arg and marked files are ignored in this case.

You can then feed the file name(s) to other commands with C-y (yank).

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/dired.el.gz
;;; Copy names of marked files into kill-ring

(defun dired-copy-filename-as-kill (&optional arg)
  "Copy names of marked (or next ARG) files into the kill ring.
The names are separated by a space.
With a zero prefix arg, use the absolute file name of each marked file.
With \\[universal-argument], use the file name relative to the Dired buffer's
`default-directory'.  (This still may contain slashes if in a subdirectory.)

If on a subdir headerline, use absolute subdirname instead;
prefix arg and marked files are ignored in this case.

You can then feed the file name(s) to other commands with \\[yank]."
  (interactive "P")
  (let ((string
         (or (dired-get-subdir)
             (mapconcat #'identity
                        (if arg
                            (cond ((zerop (prefix-numeric-value arg))
                                   (dired-get-marked-files))
                                  ((consp arg)
                                   (dired-get-marked-files t))
                                  (t
                                   (dired-get-marked-files
				    'no-dir (prefix-numeric-value arg))))
                          (dired-get-marked-files 'no-dir))
                        " "))))
    (unless (string= string "")
      (if (eq last-command 'kill-region)
          (kill-append string nil)
        (kill-new string))
      (message "%s" string))))