Linuxにおけるリンクについて

初めに

  • Linuxを学習した内容をアウトプットすることで学習効率を向上させつつ備忘録がてらに日記を書いていきます。

リンクについて

  • Linuxにおけるリンクは2つある。ハードリンクシンボリックリンク

    ハードリンクについて

  • ファイルに複数の名前をつけることができる機能。

  • 元のファイルを消しても機能は消えない。

  • 全てのファイル(ハードリンク、元ファイル)が消えると機能が消えてしまう。

 * イメージ的にはナルトの影分身でナルト本人が消えてしまっても影分身が残っている。

シンボリックリンクについて

 * イメージ的にはナルトの影分身で、ナルトがダメージを受けたり、死んでしまうと、シンボリックリンクである影分身が消えてしまう。

  • リンク先の代理店的な役割を果たす。  

リンクの作成

ハードリンクの作成

ln <リンク元ファイル名><リンク名>

シンボリックリンクの作成

ln -s <リンク元ファイル名><リンク名>

具体例

$ touch file
  • fileの中にechoを使用してLinuxを出力し、出力結果を記入する。
 $ echo "Linux" > file
  • fileの中身にを確認していく。

  • cat fileを入力することでfileの中身にLinuxが記入されているのが確認できた。

$ cat file
Linux
 
  • fileを元にハードリンクを作成する。
$ ln file file_hard
$ ln -s file file_symbolic
$ ls
file  file_hard file_symbolic
$ cat file_hard
Linux
$ cat file_symbolic
Linux
$ rm file
$ cat file_hard
Linux
$ cat file_symbolic
cat: file_symblic: No such file or directory

結語

  • ハードリンクはファイルを複製でき、リンク元が消されても機能はそのまま保持し続ける。

  • シンボリックリンはリンク先のパスが書かれている特殊ファイルで、リンク元が消されれうと機能を失ってしまう。

  • $ ln <リンク元ファイル> <ハードリンク名>

  • $ ln -s <リンク元ファイル> <シンボリックリンク名>