ハードリンクしたファイルはinode番号が同一値になる

inode とは

UNIX系ファイルシステムで使われているデータ構造

  • UNIXのファイルは、inodeと、実際のデータの組み合わせ
  • inodeには、inode番号と、ファイルのサイズなどの属性情報が格納されている

inode番号 とは

各nodeに与えられる任意の値

  • 各ディレクトリは、node へリンクを貼ることでファイルを管理している
  • node番号は ls -i で確認可能

ハードリンクを生成すると、どちらも同一のファイルを参照するため、node番号は同一値となる

$ ls -li aaa bbb
8610608681 -rw-rw-rw-  2 kasei_san  staff  221  8  2 11:28 aaa
8610608681 -rw-rw-rw-  2 kasei_san  staff  221  8  2 11:28 bbb

ls-i オプションで、inode番号が確認できる

rm まめちしき

  • rm コマンドはファイルの削除ではない。ディレクトリから対象のnodeを外すだけ
    • unlink というコマンドもある(カーネルによっては rm のハードリンク)
  • 一つもリンクが無く、openされていないnodeは、その後削除される