[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1088] Re: ディレクトリリンク(Re:タグシステム.).



小柳です。こんばんは。

Hidemi KAWAI wrote:
> 
>   こんにちは、川合です。とても古いメールへのレスです。
> 
> Koyanagi Masaaki さんは 2000/06/12 22:32:02 の「[OSASK 876] Re:
> タグシステム  .」で書きました:
> 
> >「ハードリンク」, 「シンボリックリンク」はDOSには(ほとんど)ないもの
> >ですが、私自身はとても有用だと思っています。
> 
>   ハードリンク、シンボリックリンクの違いを分かっていないのでもし
> かしたら僕は勘違いしているかもしれませんが、OSASKは2種類のディ
> レクトリリンク方法を持たせる予定です。

川合さんの解釈でいいと思います。
ハードリンクについて少しだけ補足します。

>   1つは、内部的なポインタによってリンクされているリンク方法で、
> これが一般的なリンク方法です。内部的なつながりでリンクしているの
> で、ファイル名・ディレクトリ名を変更してもリンク関係は保たれます
> 。

UNIX においては、この内部的なポインタにあたるのが、inode 番号です。
例えばカレントディレクトリと親ディレクトリに使用されています。

koya[530]:~/tmp% ls -aild /home/koya /home/koya/tmp
  22441 drwxr-xr-x  29 koya     users        5120 Aug 19 22:05
/home/koya/
  24481 drwxr-xr-x   2 koya     users       73728 Aug 19 22:09
/home/koya/tmp/
koya[531]:~/tmp% ls -ail
total 78
  24481 drwxr-xr-x   2 koya     users       73728 Aug 19 22:09 ./
  22441 drwxr-xr-x  29 koya     users        5120 Aug 19 22:05 ../

この結果を見ると分かるかと思いますが、
~/tmp(/home/koya/tmp)には二つのディレクトリ(ファイル)が存在していま
す。
そして "." と /home/koya/tmp , ".." と /home/koya はinode番号が同じで
す。
つまり同じファイルを指しています。
また左から二番目の数字が参照数です。
inode番号22481 は /home/koya/tmp /home/koya/tmp/. の二つから参照されてい
る
ので参照数が 2になっています。

>   2つめは、ファイル名そのものによってリンクされているリンク方法
> で、補助的なリンク方法です。リンク先のファイル名・ディレクトリ名
> を変更すれば、リンクに関する設定を変えなくてもリンクは自然に断た
> れます。

はい、これがシンボリックリンクです。
ちなみにファイルサイズはファイルパス名の文字数そのままです。
下のシンボリックリンク "parent" のファイルサイズ10バイトは
"/home/koya" の文字数10文字と一致しています。

koya[532]:~/tmp% ln -s .. parent
koya[533]:~/tmp% ls -ail
total 78
  24481 drwxr-xr-x   2 koya     users       73728 Aug 19 22:26 ./
  22441 drwxr-xr-x  29 koya     users        5120 Aug 19 22:05 ../
  24502 lrwxrwxrwx   1 koya     users          10 Aug 19 22:26 parent ->
/home/k
oya/



--
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)