Next: , Previous: link invocation, Up: Special file types


12.2 ln: ファイル間にリンクを作成

lnは,ファイル間のリンクを作成します.デフォルトで,それはハー ドリンクを作成します.-sを用いると,シンボリック(または ソフト(soft))リンクを作成します.概要です.

     ln [option]... target [linkname]
     ln [option]... target... directory

ハードリンク(hard link)は,既存のファイルの別名です.リンクとオ リジナルは区別できません.技術的には,それらは同じinodeを共有し,inode はファイルに関する必要な情報をすべて含んでいます — 実際,inodeがファ イルであると言っても間違いではありません.既存のすべての実装で は,ディレクトリにハードリンクを作成できず,ハードリンクはファイルシス テム間をまたぐことができません.(しかしながら,これらの制限は POSIXとマッチしません.)

一方,シンボリックリンク(Symbolic links) (短く言うと symlinks)は,リンクファイルが実際には名前の異なるファイルを参照 する特殊なファイル形式です(すべてのカーネルがサポートしているわけでは ありません.System V release 3(とそれより古いもの)はsymlinkがありませ ん).ほとんどの処理(開く,読み込む,書き出す等)は,シンボリックリンク を通じて行われ,カーネルは自動的にリンクをdereferencesし,リンク 先を処理します.しかし,リンク先ではなくリンクファイル自身に作用する (例えば削除)処理もあります.See Symbolic Links.

プログラムは以下のオプションも受け入れます.Common optionsも参照 してください.

-b
--backup[=method]
See Backup options. 上書きされたり削除されたりするそれぞれのファイルのバックアップを作成し ます.
-d
-F
--directory
スーパーユーザによるディレクトリのハードリンク作成の試みができるように します.しかし,スーパーユーザでもシステムの制限のため,失敗する可能性 があることに注意して下さい.
-f
--force
既存のリンク先ファイルを削除します.
-i
--interactive
既存リンク先ファイルを削除するかどうか,プロンプトを表示します.
-n
--no-dereference
明示的な,ディレクトリへのシンボリックリンクとなるリンク先が与えられた とき,リンク先を通常のファイルとして扱います.

リンク先が(シンボリックリンクではない)実際のディレクトリのとき,不明瞭 なことはありません.しかし,指定されたリンク先がディレクトリへのシンボ リックリンクの時,ユーザの要求の扱い方は,二通りあります.ln は,リンク先を通常のディレクトリとして扱い,それに対するリンクを作成す ることができます.一方,リンク先を非ディレクトリ — シンボリックリン ク — として見ることもできます.その場合,lnは,新しいリン クを作成する前に,そのシンボリックリンクを削除またはバックアップする必 要があります.デフォルトでは,ディレクトリへのシンボリックリンクである リンク先を,ディレクトリと同様に扱います.

-s
--symbolic
ハードリンクの代わりにシンボリックリンクを作成します.このオプションは, シンボリックリンクをサポートしていないシステムでは,単にエラーメッセー ジを生成します.
-S suffix
--suffix=suffix
-bで作成されるそれぞれのバックアップファイル名に, suffixを追加します.See Backup options.
--target-directory=directory
移動(コピー)先のdirectoryを指定します.See Target directory.
-v
--verbose
リンクする前にそれぞれのファイル名を出力します.
-V method
--version-control=method
-bで作成するバックアップの形式を変更します.method引数 は,‘none’ (または‘off’),‘numbered’ (または‘t’), ‘existing’ (または‘nil’),または‘never’ (または ‘simple’)が利用可能です.See Backup options.

以下は例です.

     ln -s /some/name  # creates link ./name pointing to /some/name
     ln -s /some/name myname  # creates link ./myname pointing to /some/name
     ln -s a b ..      # creates links ../a and ../b pointing to ./a and ./b

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.