Linux入門 3-3 ハードリンクとシンボリックリンク


はじめに

Linux初学者である自分向け用の記事です。Udemyの動画講座を参考にしました。
僕の勉強法は動画を見る実際に動かしてみる問題演習という流れです。

前回まで:Linux入門 3-2


3. LinuC 101 Ver .10.0(問題、テスト、演習)

ハードリンクとシンボリックリンク

Linuxのファイルシステムでは、「ファイルの中身」「ファイルの属性や管理情報」は別に保存されていて、 i ノードは「ファイルの属性や管理情報」が保存されています。iノード には以下の情報書かれている
・ファイルの種別
・ファイルサイズ
・アクセス権
・所有者
・リンク
・ディスク上の物理的な保存場所(ブロック番号)
iノードを確認するには

ls -i

ファイルに対してリンクを作成することができ、リンクにはハードリンク、シンボリックリンクがある

ln ファイル名 リンク先 : ハードリンクの作成
ln -s ファイル名 リンク先 : シンボリックリンクの作成


ハードリンク

iノードが同じであることが確認できる。
つまり、test.txtとtest_hard.txtは全く一緒だから、どちらかを編集したら、もう一方も反映される。
→バックアップの用途で利用すると便利

[test@localhost 03]$ vi test.txt
[test@localhost 03]$ ln test.txt test_hard.txt
[test@localhost 03]$ cat test_hard.txt
リンクの作成
[test@localhost 03]$ ls -li
合計 8
25291931 -rw-r--r--. 2 test my_group 19 12  7 08:06 test.txt
25291931 -rw-r--r--. 2 test my_group 19 12  7 08:06 test_hard.txt

シンボリックリンク

どちらかを編集したら、もう一方も反映される。指しているファイルの削除、移動、リネームをすると利用できなくなる
→ファイル、ディレクトリへの簡易なリンクとして利用できる

[test@localhost 03]$ vi test.txt
[test@localhost 03]$ ln -s test.txt test_symbolic.txt
[test@localhost 03]$ ls -li
合計 8
25291931 -rw-r--r--. 2 test my_group 28 12  7 08:10 test.txt
25291931 -rw-r--r--. 2 test my_group 28 12  7 08:10 test_hard.txt
25291930 lrwxrwxrwx. 1 test my_group  8 12  7 08:13 test_symbolic.txt -> test.txt
[test@localhost 03]$ vi test_symbolic.txt
[test@localhost 03]$ cat test.txt
リンクの作成
symbolic
[test@localhost 03]$ mv test.txt test_bk.txt
[test@localhost 03]$ ls -il
合計 8
25291931 -rw-r--r--. 2 test my_group 28 12  7 08:17 test_bk.txt
25291931 -rw-r--r--. 2 test my_group 28 12  7 08:17 test_hard.txt
25291930 lrwxrwxrwx. 1 test my_group  8 12  7 08:13 test_symbolic.txt -> test.txt

To Be Continued...
Linux入門 3-4