2003 CNS GUIDE
copyright
 

5.9 ファイルやディレクトリへのリンク -- (ln)

リンクは同じ内容のファイルを異なる名前やパス名で利用するための機能です.

複数のユーザで同じファイルを参照する場合や,グループで作業するなどの場合には,同じファイルをそれぞれのディレクトリにコピーするよりも,リンクを使った方が効率がよくなります. リンクを作成することを``リンクを張る''といいます.

リンクには``シンボリックリンク''と``ハードリンク''があります. シンボリックリンクはリンク先のファイルが消去されてしまうと 参照できなくなります. それに対して,ハードリンクはリンク先のファイルが消去されても ファイルの実体は残っており,内容を参照できます. 通常はシンボリックリンクを利用します.

5.9.1 リンクを張る

リンクを張るには,lnコマンド(LiNk)を実行します. 参照するリンク先のファイル名と新しく作成するリンクの名前を指定します. `-s'オプションはシンボリックリンクを 張るときに指定します.

ln [-s] [リンクする先のファイル名] [リンクの名前]

次に,ユーザ`t03000tf'が ユーザ`s03000hf'のホームディレクトリにあるファイル `mymemo.txt'に対して,`memo-link' という名前のリンクを作成する例を示します.

こうして作成された`memo-link'の内容を catコマンドなどで見ると`mymemo.txt' と同じであることが確認できます. ただし,リンクの実体は参照先のファイルのパスなので,ファイル容量は非常に小さくなっています. `ls -l'コマンドを実行すると,先頭のファイルタイプが `l'であることからリンクであることがわかります([*]).

% ls -F <ENTER>      ←カレントディレクトリの内容を表示
Mail/   bin/
% ln -s /home/s03000hf/mymemo.txt memo-link <ENTER>
% ls <ENTER> ←リンクが作成されている
Mail/   bin/   memo-link@
% ls -l <ENTER>
total 3
drwxrwxr-x 11 t03000tf student 512 Feb 18 12:22 Mail
drwx------  3 t03000tf student 512 Feb 13 16:07 bin
lrwxrwxrwx  1 t03000tf student  10 Nov 20 15:35 memo-link -> 
/home/s03000hf/mymemo.txt
% _

5.9.2 リンクを解消する

シンボリックリンクを削除する際には,rmコマンドを実行します. rmコマンドはシンボリックリンクの指す先ではなく,リンク自体を削除します.

他のユーザが持っている大きな容量の ファイル(実行形式のファイルや動画ファイルなど)は,コピーするよりもリンクを張ってください. コピーした場合,CNS に同じファイルが増え,ファイル空間を無駄に使うことになります. ただし,リンク先のファイルは変更される可能性があるので注意してください.