at_shiita.ishigaki
2022年1月19日 10時49分
ハードリンクとは、一つのファイルに複数の実名を付ける機能です。
ハードリンクを作成するにはlnコマンドを使用します。
※ここでは例として、hoge.txtのハードリンクをfuga.txtに作成します。
[armadillo ~]# echo hoge > hoge.txt
[armadillo ~]# ln hoge.txt fuga.txt
[armadillo ~]# cat fuga.txt
hoge
[armadillo ~]# echo fuga >> fuga.txt
[armadillo ~]# cat hoge.txt
hoge
fuga
上記のように、fuga.txtの変更はhoge.txtにも反映されていることが確認できます。
ハードリンクは同じinodeを使用しているため、ハードリンクか調べるには、同じinodeを使用しているかを調べることで確認できます。
inodeを表示するにはls -iコマンドを使用します。
[armadillo ~]# ls -i
177137 fuga.txt 177137 hoge.txt
上記のように、hoge.txtとfuga.txtは同じinodeを使用しているため、ハードリンクになっていることが確認できます。
ハードリンクはhoge.txtを削除してもfuga.txtにはアクセスすることができます。
[armadillo ~]# rm hoge.txt
[armadillo ~]# cat fuga.txt
hoge
fuga
次に、シンボリックリンクを作成する方法について紹介します。
シンボリックリンクは一つのファイルに別名を付ける機能です。
ハードリンクを作成するにはln -sコマンドを使用します。
[armadillo ~]# ln -s hoge.txt piyo.txt
[armadillo ~]# cat piyo.txt
hoge
fuga
シンボリックリンクかどうかを確認するには、ls -lコマンドを使用します。
[armadillo ~]# ls -l piyo.txt
lrwxrwxrwx 1 atmark atmark 8 1月 20 01:12 piyo.txt -> hoge.txt
シンボリックリンクはhoge.txtを削除すると、piyo.txtにはアクセスすることができなくなります。
[armadillo ~]# rm hoge.txt
[armadillo ~]# cat piyo.txt
/bin/cat: piyo.txt: No such file or directory
シンボリックリンクを解除するにはunlinkコマンドを使用します。
[armadillo ~]# unlink piyo.txt