##お願い
図が崩れるため、PCで見てください。
##ディレクトリ
・所属するファイルのファイル名とiノードを記録するファイル
------directory------ -------iノード-------- ---------実体---------
| -----file------ | | --------------- | | --------------- |
| | ファイル名 | | | | 001 | | | | aaa | |
| | aaa |===========> | |===========> | | |
| | iノード番号 | | | | | | | | | |
| | 001 | | | | | | | | | |
| --------------- | | --------------- | | --------------- |
| -----file------ | | --------------- | | --------------- |
| | ファイル名 | | | | 002 | | | | bbb | |
| | bbb |===========> | |===========> | | |
| | iノード番号 | | | | | | | | | |
| | 002 | | | | | | | | | |
| --------------- | | --------------- | | --------------- |
--------------------- --------------------- ---------------------
##iノード
・ファイルの属性を保存する場所
-固有のiノード番号を持つ
------directory------ -------iノード-------- ---------実体---------
| -----file------ | | --------------- | | --------------- |
| | ファイル名 | | | |001 | | | | aaa | |
| | aaa |===========> |種類 |===========> | | |
| | iノード番号 | | | |サイズ | | | | | |
| | 001 | | | |アクセス権 | | | | | |
| | | | | |所有者 | | | | | |
| | | | | |所有グループ | | | | | |
| | | | | |実体の保存場所 | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| --------------- | | --------------- | | --------------- |
--------------------- --------------------- ---------------------
##ハードリンク
・元ファイル(実体)と同じiノードを指す
-元ファイルを消去してもアクセスできる
------directory------ -------iノード-------- ---------実体---------
| -----file------ | | --------------- | | --------------- |
| | ファイル名 | | | | 001 | | | | aaa | |
| | aaa |===========> | |===========> | | |
| | iノード番号 | | ===>| | | | | | |
| | 001 | | = | | | | | | | |
| --------------- | = | --------------- | | --------------- |
| -----file------ | = | | | |
| | ファイル名 | = | | | |
| | bbb |= | | | |
| | iノード番号 | | | | | |
| | 001 | | | | | |
| --------------- | | | | |
--------------------- --------------------- ---------------------
##シンボリックリンク
・リンク元(実体)の場所を指す
-ディレクトリ、別パーティションでも作成できる
------directory------ -------iノード-------- ---------実体---------
| -----file------ | | --------------- | | --------------- |
=======>| ファイル名 | | | | 001 | | | | aaa | |
|| | | aaa |===========> | |===========> | | |
|| | | iノード番号 | | | | | | | | | |
|| | | 001 | | | | | | | | | |
|| | --------------- | | --------------- | | --------------- |
|| | -----file------ | | --------------- | | --------------- |
|| | | ファイル名 | | | | 002 | | | |リンク先のパス| |
|| | | bbb |===========> | |===========> | | |
|| | | iノード番号 | | | | | | | | aaa | |
|| | | 002 | | | | | | | | | |
|| | --------------- | | --------------- | | --------------- |
|| --------------------- --------------------- ----------||---------
|| ||
=========================================================================
##まとめ
・ハードリンク
-元ファイルと同一のiノードを指す
<できないこと>
・ディレクリへの作成はできない
・別のファイルシステム(パーティション)への作成はできない
-パーティションが割れると、iノードの場所も割れる
・シンボリックリンク
-リンク元のポインタを指す
・リンク元のアクセス権が適用される
・シンボリックリンクがコピーすると、リンク元のファイルがコピーされる
-cp -dでシンボリックリンクそのものをコピーする
##lnコマンド
###ハードリンク作成
sample.txtへのハードリンクsample_lnkを作成する
ln sample.txt sample_lnk
# ln sample.txt sample_lnk
# ls -li
total 0
25312947 -rw-r--r-- 2 root wheel 0 Aug 26 02:19 sample.txt
25312947 -rw-r--r-- 2 root wheel 0 Aug 26 02:19 sample_lnk
*iノード番号が同じになっているのが確認できます(25312947)
###シンボリックリンク作成
sample.txtへのシンボリックリンクsample_lnkを作成する
ln -s sample.txt sample_lnk
# ln -s sample.txt sample_lnk
# ls -li
total 8
25312947 -rw-r--r-- 1 root wheel 0 Aug 26 02:19 sample.txt
25313030 lrwxr-xr-x 1 root wheel 10 Aug 26 02:24 sample_lnk -> sample.txt