Skip to content

End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

class method

FileUtils.ln

FileUtils.ln(target, link, force: nil, noop: nil, verbose: nil)
FileUtils.ln(target, dir, force: nil, noop: nil, verbose: nil)
FileUtils.ln(targets, dir, force: nil, noop: nil, verbose: nil)

In the first form, creates a hard link link which points to target. If link already exists, raises Errno::EEXIST. But if the force option is set, overwrites link.

Example
FileUtils.ln 'gcc', 'cc', verbose: true
FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'

In the second form, creates a link dir/target pointing to target. In the third form, creates several hard links in the directory dir, pointing to each item in targets. If dir is not a directory, raises Errno::ENOTDIR.

Example
FileUtils.cd '/sbin'
FileUtils.ln %w(cp mv mkdir), '/bin'   # Now /sbin/cp and /bin/cp are linked.
See also #ln .link_entry .ln_s .link also in 4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0