MW211 EXIT

devlog
シェル/シンボリックリンク・補足
2013年03月09日
コピーとハードリンクとシンボリックリンクの比較。
┌───────┬───────┬───────┬──────────────┐
│    コピー    │ ハードリンク │ シンボリック │                            │
├───────┼───────┼───────┼──────────────┤
│$ echo "a" > A│$ echo "a" > A│$ echo "a" > A│←「A」を生成               │
│$ cat A       │$ cat A       │$ cat A       │←「A」の中身を確認         │
│a             │a             │a             │                            │
├───────┼───────┼───────┼──────────────┤
│$ cp A B      │$ ln A B      │$ ln -s A B   │←「B」を生成する           │
│$ cat B       │$ cat B       │$ cat B       │←「B」の中身を確認         │
│a             │a             │a             │←「A」の中身と同じ         │
├───────┼───────┼───────┼──────────────┤
│$ echo "b" > B│$ echo "b" > B│$ echo "b" > B│←「B」の中身を変更         │
│$ cat B       │$ cat B       │$ cat B       │                            │
│b             │b             │b             │                            │
│$ cat A       │$ cat A       │$ cat A       │←「A」の中身を確認         │
│a             │b             │b             │                            │
└───────┴───────┴───────┴──────────────┘
コピーの場合は、独立した二つのデータが生成されるので、互いに影響を与えない。
ハードリンクの場合は、一つのデータを共有するので、互いに影響を与える。
シンボリックリンクの場合は、シンボルが実体のようにふるまう。
よって、シンボルを更新すると実体が更新される。

シンボリックリンクの実体がなくなると、シンボルを指定しても該当なしエラーとなる。
┌──────────────────────────────────────┐
│$ ls -l                                                                     │
│lrwxrwxrwx    1 root     root            2 Jan  1  1970 B -> A              │
│$ rm A                                                                      │
│$ cat B                                                                     │
│cat: B: No such file or directory                                           │
└──────────────────────────────────────┘
分類:Linuxシェル