2つの別々のファイルシステムにある2つのファイルが同じinode番号を共有できますか? [コピー]

2つの別々のファイルシステムにある2つのファイルが同じinode番号を共有できますか? [コピー]

次のコマンドを実行すると:

find / -inum 12582925

同じ番号が割り当てられている異なるマウントされたファイルシステム(別のパーティション)にある2つのファイルを一覧表示することは可能ですか?単一のファイルシステムまたはマウントされたすべてのファイルシステムで、inode番号は一意ですか?

ベストアンサー1

ノード番号は単一のファイルシステムでのみ一意です。すぐに遭遇する例は ext2/3/4 ファイルシステムのルート inode(2) です。

$ ls -id / /home
2 /    2 /home

実行すると(GNU仮定find

find / -printf "%i %p\n" | sort -n | less

複数のファイルシステムを持つシステムでは、非常に多くの重複したinode番号が表示されます(ただし、出力にはハードリンクも含まれているため、少し注意が必要です)。

inode番号でファイルを検索するときに開始パスのみがある場合は、オプションを使用して起動パスを含むファイルシステムに検索を制限できfindます-xdev

find / -xdev -inum 12582925

inode番号が12582925のファイルのみがルートファイルシステムにあります。 (-xdev複数の開始パスでも機能しますが、この特別な場合には使いやすさが低下します。)

st_dev(特定のシステムでは)ファイルを一意に識別するのは、inode番号とデバイス番号(GNUの構造内)の組み合わせです。 2つのディレクトリエントリが同じinodeとdev番号を持つ場合は、同じファイルを参照します(同じファイルシステム内の2つの異なるマウントを介してバインドマウントできます)。st_inostat%D %ifind-printf

一部の実装には、同じデバイス番号とinode番号を持つファイルを見つける述語がfindあります。-samefileほとんどの[/実装には、両方のファイルパスが同じファイルを参照しているかどうかを確認する演算子もtestあります(シンボリックリンクの確認にもかかわらず)。-ef

おすすめ記事