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


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


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

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

1.11.1 リンクを張る

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

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

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

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

1.11.2 リンクを解消する

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

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



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