戻る
GNUのsh-fileutils付属のlnコマンドのマニュアル。
================================
LN(1) LN(1)
ln - make links between files
名前
ln - ファイルへのリンクを作成する
書式
ln [オプション] source [dest]
ln [オプション] source... directory
POSIX オプション: [-f]
GNU オプション (簡略形式): [-bdfinsvF] [-S backup-suffix]
[-V {numbered,existing,simple}] [--help] [--version] [--]
説明
ln コマンドはファイルへのリンクを作成する。特に指定がな い
と ハードリンクを作成する; -s オプションを指定するとシンボ
リック(もしくはソフト) リンクを作成する。
Unix には通常ハードリンクとソフトリンクと呼ばれる、2つ の`
リンク' の概念がある。 (ファイルは複数の名前を持つことが出
来る。その最後の名前が削除された場合にのみディスク上から実
体 が消去される。ファイルが持つ名前の数は ls(1) コマンドで
知ることができる。もともとの名前というものは無い: すべての
名 前 は同じステータスを持っている。通常、必須では無いが、
ファイルの名前はすべてそのファイルシステム内にあり、それ自
身のデータもそこに持っている。
ソ フ トリンク(もしくはシンボリックリンク、または symlink)
というのはまったく違った種類のものである: 実体はパス名を含
んだ小さくて特殊なファイルである。従って、ソフトリンクは異
なるファイルシステム上(たぶん他のマシンからマウントされ た
NFS) の ファ イルを指す事が出来る。また実際には存在しない
ファイルを指していても構わない。 ( open(2) または stat(2)
と いっ たシステムコールにより) アクセスされた場合、シンボ
リックリンクへの参照は、オペレーティングシステムのカーネル
によりそのパス名で指示されるファイルへの参照として置き換え
られる。 (しかし、 rm(1) コマンドや unlink(2) 関数ではリン
ク 自 身が削除され、リンクが指しているファイルは削除されな
い。 lstat(2) や readlink(2) 関数といったシンボリックリ ン
クや、リンクが指しているファイル名のステータスを得る特殊な
システムコールがある。その他の色々なシステムコールでは、そ
の操作の対象がシンボリックリンクそのものなのか、それが指し
ているファイルなのかといったことについて、オペレーティング
システム間で不明瞭さや違いがある。)
o 一つのファイルのみ与えられた場合、そのファイルをカレント
ディレクトリにリンクする。つまり、(一番最後に お か れ た)
ファイル名と同じ名前でファイルへのリンクをカレントディレク
トリに作る。 (これは GNU での拡張機能である)
o もし最後の引数がすでに存在するディレクトリであった 場 合
ln コマンドはそのディレクトリ内に source ファイルで指示さ
れたそれぞれに対するリンクを作る。その名前は(一番最後に お
か れ た) source ファイルの名前と同じ名前を持つ。(以下の
--no-dereference オプションの説明を参照)
o 引数にファイルが2つ指定された場合、 source を指 す dest
という名前のリンクが作成される。最後の引数がディレクトリで
は無いのに、2つ以上のファイルが指定された場合はエラーと な
る。
特に指定がないと、 ln コマンドは存在しているファイルや、シ
ンボリックリンクの削除は出来ない。 (そのため、ロックの目的
で使うことができる: dest が存在しない場合のみ正常終了する)
-f オプションを指定することで強制的に削除すること が で き
る。
今ある実装では、ディレクトリへのハードリンクの作成ができる
場合でも、スーパーユーザーにのみ許される操作として い る。
link(2) システムコールや ln コマンドでのディレクトリへの
ハードリンクの作成を POSIX では禁止している。 (しかし異 種
の ファ イルシステムをまたがったハードリンクは禁止していな
い。)
POSIX オプション
-f 指定したリンクファイルがすでにあった場合は 削 除 す
る。
GNU オプション
-d, -F, --directory
スー パーユーザーがディレクトリへのハードリンクを作
成するのを許す。
-f, --force
指定したリンクファイルがすでにあった場合は 削 除 す
る。
-i, --interactive
指 定したリンクファイルがすでにあった場合は、削除す
るかどうか問い合わせを行う。
-n, --no-dereference
明示的にディレクトリにシンボリックリンクしている リ
ン クファイルが指定された場合、それを普通のファイル
と同じように扱う。
実際のディレクトリ(どこかへのシンボリックリンクでは
な い) がリンクファイルとして指定された場合の扱いは
はっきりしている。そのディレクトリ内にリンクが作 成
さ れる。しかしディレクトリへのシンボリックリンクが
リンクファイルとして指定された場合、ユーザーの要 求
に対して2通りの動きがある。 ln コマンドは指定された
リンクファイルを通常のディレクトリのように扱い、 そ
の 中にリンクを作成することができる。もう一つは、リ
ンクファイルが非ディレクトリ - シンボリックリンクそ
の ものであるとして扱うことができる。その場合には、
ln コマンドは新しいリンクを作成する前にシンボリック
リ ンクを削除、またはバックアップする必要がある。標
準では、ディレクトリへのシンボリックリンクが指定 さ
れた場合には、ディレクトリと同じように扱う。
-s, --symbolic
ハー ド リ ンクの代わりにシンボリックリンクを作成す
る。シンボリックリンクをサポートしないシス テ ム で
は、 このオプションを指定すると単にエラーメッセージ
を出力する。
-v, --verbose
リンクを作成する前にそれぞれの名前を出力する。
GNU バックアップオプション
GNU 版のプログラム cp, mv, ln, install そして patch は指示
すれば上書き、修正、削除といった場合にファイルのバックアッ
プを作成する。バックアップファイルを必要とする場合は -b オ
プションで指示する。どういう名前にするかは -V オプションで
指定する。バックアップファイルの名前を、ファイル名の添字の
拡張によって与えるようにしたい場合、この添字を -S オプショ
ンで指示する。
-b, --backup
上書きもしくは削除の必要がある場合にはファ イ ル の
バックアップを作成する。
-S SUFFIX, --suffix=SUFFIX
SUFFIX をバックアップファイルそれぞれに付け加える。
このオプションが指定されていない場合、環境変数 SIM-
PLE_BACKUP_SUFFIX に 設定されている値が使われる。
SIMPLE_BACKUP_SUFFIX が設定されていない場合の標準値
は `~' である。
-V メソッド, --version-control=メソッド
バックアップファイルの命名方法を指定する。 メソッド
引数として `numbered' (または `t')、`existing' ( ま
た は `nil')、もしくは `never' (または `simple') を
指定できる。このオプションが指定されていない場 合、
環 境 変 数 VERSION_CONTROL の値が使われる。 VER-
SION_CONTROL が設定されていない場 合 の 標 準 値 は
`existing' である。
こ のオプションは Emacs 変数の `version-control' に
対応している。有効な メソッドは (他と重複しない短縮
形が使える):
t, numbered
常に番号の添字を持つバックアップが作られる。
nil, existing
番号の添字を持つバックアップがすでにある場合
には番号の添字を持つバックアップを、そうでな
い場合には単純なバックアップを作成する。
never, simple
常に単純なバックアップが作られる。
GNU 標準オプション
--help 標準出力に使用方法のメッセージを出力して正常終了 す
る。
--version
標準出力にバージョン情報を出力して正常終了する。
-- オプションリストを終了する。
環境変数
変 数 LANG, LC_ALL, LC_CTYPE, LC_MESSAGES が通常の意味を持
つ。
準拠
POSIX 1003.2. しかし、POSIX 1003.2 (1996) ではソフトリンク
に つ い て触れていない。ソフトリンクは BSD により持ち込ま
れ、System V release 3 (そしてそれ以前) のシステムで は 無
い。
参照
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2),
stat(2), unlink(2)
注意
このページでは fileutils-4.0 パッケージでの ln コマンド に
ついて説明している; その他のバージョンでは少し違いがあるか
も し れ な い。 修 正 や 追 加 は aeb@cwi.nl と
aw@mail1.bet1.puv.fi そして ragnar@macula.net 宛てメイルし
てください。プログラム の バ グ に つ い て は bug-fileu-
tils@gnu.org へ報告してください。
GNU fileutils 4.0 17 November 1998 LN(1)