diredp-do-hardlink-recursive, from library Dired+.
diredp-do-hardlink-recursive is an interactive compiled Lisp function
(diredp-do-hardlink-recursive &optional IGNORE-MARKS-P)
Add hard links for marked files, including those in marked subdirs.
Like `dired-do-hardlink', but act recursively on subdirs to pick up the
files to link.
The files included are those that are marked in the current Dired
buffer, or all files in the directory if none are marked. Marked
subdirectories are handled recursively in the same way.
With a prefix argument, ignore all marks - include all files in this
Dired buffer and all subdirs, recursively.