Method: FileUtils.ln_s
- Defined in:
- lib/fileutils.rb
.ln_s(src, dest, force: nil, noop: nil, verbose: nil) ⇒ Object
:call-seq:
FileUtils.ln_s(target, link, force: nil, noop: nil, verbose: nil)
FileUtils.ln_s(target, dir, force: nil, noop: nil, verbose: nil)
FileUtils.ln_s(targets, dir, force: nil, noop: nil, verbose: nil)
In the first form, creates a symbolic link link which points to target. If link already exists, raises Errno::EEXIST. But if the :force option is set, overwrites link.
FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'
FileUtils.ln_s 'verylongsourcefilename.c', 'c', force: true
In the second form, creates a link dir/target pointing to target. In the third form, creates several symbolic links in the directory dir, pointing to each item in targets. If dir is not a directory, raises Errno::ENOTDIR.
FileUtils.ln_s Dir.glob('/bin/*.rb'), '/home/foo/bin'
316 317 318 319 320 321 322 323 |
# File 'lib/fileutils.rb', line 316 def ln_s(src, dest, force: nil, noop: nil, verbose: nil) "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose return if noop fu_each_src_dest0(src, dest) do |s,d| remove_file d, true if force File.symlink s, d end end |