def ln_s(src, dest, options = {})
    fu_check_options options, OPT_TABLE['ln_s']
    fu_output_message "ln -s#{options[:force] ? 'f' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest0(src, dest) do |s,d|
      remove_file d, true if options[:force]
      File.symlink s, d
    end
  end
Options: force noop verbose

<b><tt>ln_s(old, new, options = {})</tt></b>

Creates a symbolic link +new+ which points to +old+.  If +new+ already
exists and it is a directory, creates a symbolic link +new/old+.  If +new+
already exists and it is not a directory, raises Errno::EEXIST.  But if
:force option is set, overwrite +new+.

FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'
FileUtils.ln_s 'verylongsourcefilename.c', 'c', :force => true

<b><tt>ln_s(list, destdir, options = {})</tt></b>

Creates several symbolic links in a directory, with each one pointing to the
item in +list+.  If +destdir+ is not a directory, raises Errno::ENOTDIR.

If +destdir+ is not a directory, raises Errno::ENOTDIR.

FileUtils.ln_s Dir.glob('bin/*.rb'), '/home/aamine/bin'