LN(1)

名称
ln, link - リンクファイルの作成

書式
ln [-fhinsv] source_file [target_file] ln [-fhinsv] source_file ... target_dir link source_file target_file

解説
ln は新しいディレクトリエントリ (リンクファイル) を作成するユーティリティです。 リンクファイルのモードはオリジナルファイルと同じになります。 リンクファイルは “ファイルの内容のコピー” ではなく、 “ファイルを指し示すポインタ” であり、1 つのオリジナル ファイルを多くのディレクトリで取り扱えるようにするのに有効です。 リンクファイルには、ハードリンクとシンボリックリンクの 2 つの形式があり ます。違いは、リンクの方法です。

オプションとしては以下のものがあります。

-f  target_file が既に存在する場合、 リンクが成功するように、これをアンリンクします。 ( -f オプションが指定されると、それ以前の -i オプションは無視されます。)

-h  target_file または target_dir がシンボリックリンクの場合、これを辿りません。 これは、 -f オプションと共に使用して、 ディレクトリを指すかもしれないシンボリックリンクを置き換える場合に 最も有用です。

-i  すでに target_file が存在する場合、 ln に標準エラー出力を使用して確認を求めさせます。 標準入力から ‘y’ または ‘Y’ で始まる文字列が入力されると、target_file が既に存在する場合、 リンクが成功するように、これをアンリンクします。 ( -i オプションが指定されると、それ以前の -f オプションは無視されます。)

-n  -h と同様ですが、他の ln の実装との互換性のためにあります。

-s  シンボリックリンクを作成します。

-v  ln を冗長にし、処理するファイルを表示します。

デフォルトでは、 ln は ハードリンク を作成します。 ファイルへのハードリンクはオリジナルのディレクトリエントリと区別できません。 ファイルの参照に使われる名前にかかわらず、 そのファイルへのいかなる修正も同じように有効です。 通常、ハードリンクはディレクトリを指すことはできませんし、 ファイルシステムを拡張することもできません。

シンボリックリンクはリンク先ファイルの名前を保持します。 リンクに対して open(2) 操作を行うと、その参照先ファイルが用いられます。 シンボリックリンクに対して stat(2) 操作を行うと、参照先ファイルの情報を返します。 リンクそのものの情報を得るには lstat(2) を用いなければなりません。 readlink(2) 呼び出しによってシンボリックリンクの内容を読むこともできます。 シンボリックリンクによってファイルシステムを拡張したり、 ディレクトリを参照したりすることが可能です。

1 個あるいは 2 個の引数が与えられた場合、 ln は既存のファイル source_file に対するリンクを作成します。 target_file が指定された場合、リンクの名前はそれと同一になります。 target_file はリンクファイルを置くディレクトリであっても構いません。 それ以外の場合はリンクはカレントディレクトリに置かれます。 ディレクトリ名だけが指定された場合は、 source_file のパス名の最後のファイル名が指定されたものとみなします。

2 個以上の引数が与えられた場合、 ln はディレクトリ target_file 内に指定された全てのファイルのリンクを作成します。作られるリンクの 名前は、リンクされるファイルの名前と同じになります。

本ユーティリティを link として呼び出す場合、正確に 2 個の引数が必要であり、 どちらもディレクトリであってはなりません。 この単純モードでは、オプションは指定不可であり、渡された 2 個の引数を使用して link(2) の動作を行います。

関連項目
link(2), lstat(2), readlink(2), stat(2), symlink(2), symlink(7)

互換性
-h, -i, -n, -v は標準ではありませんし、スクリプト中での使用はお勧めしません。 他の ln 実装との互換性のためだけに提供されています。

標準
ln ユーティリティは p1003.2-92 に適合します。 単純化された link コマンドは susv2 に適合します。

歴史
ln コマンドは AT&T UNIX から登場しました。