リンクは同じ内容のファイルを異なる名前やパス名で利用するための機能です.
複数のユーザで同じファイルを参照する場合や, グループで作業するなどの場合には, 同じファイルをそれぞれのディレクトリにコピーするよりも, リンクを使った方が効率がよくなります. リンクを作成することを``リンクを張る''といいます.
リンクには ``シンボリックリンク''と ``ハードリンク'' があります.
シンボリックリンクはリンク先のファイルが消去されてしまうと参照できなくなります. それに対して, ハードリンクはリンク先のファイルが消去されてもファイルの実体は残っており,
内容を参照できます. 通常はシンボリックリンクを利用します.
■リンクを張る | |
リンクを張るには, lnコマンド(LiNk)を実行します. 参照するリンク先のファイル名と新しく作成するリンクの名前を指定します. `-s'オプションはシンボリックリンクを 張るときに指定します. | |
書式 | ln [-s] [リンクする先のファイル名] [リンクの名前] |
次に, ユーザ`s02000hf'が ユーザ`t02000tf'のホームディレクトリにある `file2'に対して, 自分のホームディレクトリに`file2-link'という名前のリンクを作成する例を示します.
こうして作成された`file2-link'の内容をcatコマンドなどで見ると`file2'と同じであることが確認できます. ただし, リンクの実体は参照先のファイルのパスなので, ファイル容量は非常に小さくなっています. `ls -l'コマンドを実行すると, 先頭のファイルタイプが `l'であることからリンクであることがわかります. シンボリックリンクは, 参照先が存在しなくてもエラーになりません. また,シンボリックリンク自体のパーミッションは意味を持ちません. |
|
% ls -F <RET> file1 % ln -s ~t02000tf/file1 ~/file2-link <RET> %ln -F <RET> file1 file2-link@ % ls -l <RET> total 2 -rw-r--r-- 2 s02000hf 3024 Nov 20 09:27 file1 lrwxrwxrwx 1 s02000hf 10 Nov 20 15:35 file2-link -> /home/t02000tf/file1 % _ |
■リンクを解消する | |
リンクを解消するには,一般のファイルと同様にrmコマンドで,シンボリックリンクを張ったファイルを消します.なお,シンボリックリンクを張ったファイルを消しても,リンク先のファイルが消えてしまうことはありません. |