next up previous contents index
Next: 3.12 ファイルの保護モード Up: 3. ファイルとディレクトリ Previous: 3.10 ファイル,ディレクトリの移動,コピー


3.11 ファイルへのリンク -- ln

     

リンクは同じ内容のファイルを異なる名前やパス名で利用できるようにする機 能である.リンクはコピーと異なり,参照先のパスをファイルの内容として保 存するだけなのでファイル空間を効率的に利用できる.たくさんの人数で同じ ファイルを参照する場合や,グループで作業するなどの場合には,同じファイ ルをそれぞれのディレクトリにコピーするよりも,リンクを使った方が効率が よい.リンクを作成することを``リンクを張る''という.

 

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

   
3.11.1 リンクを張る

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

% ln [-s] [リンクする先のファイル名] [リンクの名前]<RET>
次の例では,ユーザ`s98000hf'がユーザ`t98000tf'のホームディ レクトリにある`file2'に対して,自分のホームディレクトリに`file2-link'という名前のリンクを作成した例である.こうして作成された `file2-link'の内容をcatコマンドなどで見ると`file2'と 同じであることが確認できる.ただし,リンクの実体は参照先のファイルのパ スなので,ファイル容量は非常に少なくなっている.

% ls -F<RET>
file1
% ln -s ~t98000tf/file1 ~/file2-link<RET>
% ls -F<RET>
file1      file2-link@
% ls -l<RET>
total 2
-rw-r--r-- 2 s98000tf 3024 Nov 23 09:27 file1
lrwxrwxrwx 1 s98000tf   20 Nov 24 15:35 file2-link -> /home/t98000tf/file1
% _

3.11.2 リンクを解消する

 

リンクを解消するには,一般のファイルと同様にrmコマンドでシンボリッ クリンクを張ったときにつけた名前のファイルを消す.なお,シンボリックリ ンクを張ったファイルを消しても,リンク先の相手のファイルが消えてしまう ことはない.

他のユーザが持っていて,自分は参照するだけの大きな容量のファイル(画像 ファイルなど)は,コピーするよりもリンクを張ること.コピーすると,CNSに 同じファイルが増え,ファイル空間を無駄に使うことになる.