同じサーバー上の2つの異なるファイルが同じinodeを持っていますか? Linux [閉じる]

同じサーバー上の2つの異なるファイルが同じinodeを持っていますか? Linux [閉じる]

同じサーバー上の2つの異なるファイルが同じinodeを持つことは可能ですか?質問テキストに「相違」と明記し、ショートカットやリンクをたどらないでください。

答え1

Inodeは、自分が常駐するデバイス(「パーティション」)ごとに一意です。

1つのパーティション内には2つの異なるパーティションがあります。ファイル名同じ inode を指すと同じ内容になります。同じファイルですが、名前が2つ異なるためです。これを「ハードリンク」といいます。

例えば

% echo hello > a
% ln a b
% ls -li a b
2853867 -rw-r--r-- 2 sweh sweh 6 Jul 25 20:20 a
2853867 -rw-r--r-- 2 sweh sweh 6 Jul 25 20:20 b
% cat a
hello
% cat b
hello

「a」と「b」は同じinodeを持ち、同じ内容を持っていることがわかります。

別のパーティションがある場合は、同じinode番号を持つ別のファイルがある可能性があります。その理由は装備は違います。

私のコンピュータでは、/news別のパーティションからインストールされており、同じパーティションがあることがわかります。/

% ls -lid / /news
2 dr-xr-xr-x 27 root root 4096 Jun 10  2019 //
2 drwxr-xr-x 13 root root 2048 Jul 25 20:12 /news/

stat「デバイス」値を表示するコマンドを使用して違いを確認できます。

% stat / /news         
  File: '/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd03h/64771d    Inode: 2           Links: 27
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-07-25 06:49:19.766594125 -0400
Modify: 2019-06-10 13:24:11.299255125 -0400
Change: 2019-06-10 13:24:11.299255125 -0400
 Birth: -
  File: '/news'
  Size: 2048            Blocks: 4          IO Block: 2048   directory
Device: fd10h/64784d    Inode: 2           Links: 13
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-07-25 20:12:34.000000000 -0400
Modify: 2021-07-25 20:12:32.000000000 -0400
Change: 2021-07-25 20:12:32.000000000 -0400
 Birth: -

関連情報