Feature #4189
closedFileUtils#ln_r
Description
=begin
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:
http://github.com/ruby/ruby/pull/4#issuecomment-631067
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.
=end
Files
Updated by naruse (Yui NARUSE) over 13 years ago
- Status changed from Open to Assigned
- Assignee set to matz (Yukihiro Matsumoto)
=begin
=end
Updated by matz (Yukihiro Matsumoto) over 13 years ago
=begin
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?).
matz.
=end
Updated by sakuro (Sakuro OZAWA) over 13 years ago
=begin
FYI
X11 distribution has lndir command, it creates real directories and file symlinks though.
=end
Updated by johan556 (Johan Holmberg) over 13 years ago
=begin
GNU cp has the -l option, so I think the proposed method is similiar to "cp -lr" on Linux systems.
=end
Updated by reset (Jamie Winsor) over 12 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.
Updated by zzak (zzak _) about 12 years ago
- File fileutils_ln_r.patch fileutils_ln_r.patch added
- Description updated (diff)
Adding Thomas' patch from github.
Updated by mame (Yusuke Endoh) almost 12 years ago
- Target version set to 2.6
Updated by matz (Yukihiro Matsumoto) almost 7 years ago
Accepted, but I am against the name ln_r
because it behaves differently from ln -r
(relative).
Matz.
Updated by akr (Akira Tanaka) almost 7 years ago
After discussion at the developer meeting, cp_lr may be an consensus.
Updated by mame (Yusuke Endoh) over 6 years ago
- File fileutils_cp_lr.patch fileutils_cp_lr.patch added
I'll commit this patch that introduces FileUtils.cp_lr
in a few days. Let me know if there is a problem.
Updated by mame (Yusuke Endoh) over 6 years ago
- Assignee changed from matz (Yukihiro Matsumoto) to mame (Yusuke Endoh)
Updated by mame (Yusuke Endoh) over 6 years ago
- Status changed from Assigned to Closed
Applied in changeset trunk|r62739.
Add FileUtils#cp_lr
- 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] [ruby-core:33820]