Ruby 4.0 リファレンスマニュアル

module function FileUtils?.ln_sr

ln_sr(src, dest, target_directory: true, force: nil, noop: nil, verbose: nil) -> ()Ruby 3.2 から[permalink][rdoc][edit]

src へのシンボリックリンク dest を、dest からの相対パスで作成します。 ln_s(src, dest, relative: true) と同じです。

src が一つの場合、 dest がすでに存在しディレクトリであるときは dest/src を作成します。 dest がすでに存在しディレクトリでないならば例外 Errno::EEXIST が発生します。ただし :force オプションを指定したときは dest を上書きします。

src が複数の場合、 src[0] へのシンボリックリンク dest/src[0]、src[1] へのシンボリックリンク dest/src[1] …を作成します。 dest がディレクトリでない場合は例外 Errno::ENOTDIR が発生します。

[PARAM] src:
リンク元。一つの場合は文字列でも指定可能です。二つ以上指定する場合は配列で指定します。
[PARAM] dest:
リンク作成先のファイルかディレクトリです。
[PARAM] target_directory:
dest をディレクトリとして扱うかどうかを指定します(真がデフォルトです)。
[PARAM] force:
真を指定すると dest を上書きします。
[PARAM] noop:
真を指定すると実際の処理は行いません。
[PARAM] verbose:
真を指定すると詳細を出力します。
[EXCEPTION] Errno::EEXIST:
src が一つで dest がすでに存在しディレクトリでない場合に発生します。
[EXCEPTION] Errno::ENOTDIR:
src が複数で dest がディレクトリでない場合に発生します。
require 'fileutils'
p FileUtils.ln_sr('/usr/local/src/ruby/ruby.c', '/usr/local/bin/ruby.c')
# => /usr/local/bin/ruby.c は ../src/ruby/ruby.c へのシンボリックリンクになります。

[SEE_ALSO] FileUtils?.ln_s