I wrote a method for FileUtils to do recursive hard linking. It works just like cp_r but links instead of copies.
The code can be found along with the pull request I made to ruby/ruby on Github:
It's a pretty handy method for "staging" read-only files. For example I've used it to stage test fixture files in a tmp testing location and I've used it collect together a set of files for packaging into a tarball.
- lib/fileutils.rb: Add FileUtils#cp_lr. This method creates hard links of each file from directory to another directory recursively. This patch is based on Thomas Sawyers and Zachary Scott. [Feature #4189]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
#2 [ruby-core:35849] Updated by matz (Yukihiro Matsumoto) about 7 years ago
Since ln command does not have -r option, I am kind of hesitating to add ln_r. I understand usefulness of the method. But I am not sure yet where to add (is fileutils the best place?), and what to add (is ln_r the best name for the method?).
#5 [ruby-core:45813] Updated by reset (Jamie Winsor) almost 6 years ago
This ticket hasn't seen action in a year, but I wanted to chime in and +1 the feature.
Having a convenience function to recursively create hard links based on a source directory is a rare need, but a need, nonetheless. I think FileUtils is a fine place for it when compared to the other choices of where to place it in Ruby core.
#13 Updated by mame (Yusuke Endoh) about 1 month ago
- Status changed from Assigned to Closed