次のコマンドを実行すると:
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_ino
stat
%D %i
find
-printf
一部の実装には、同じデバイス番号とinode番号を持つファイルを見つける述語がfind
あります。-samefile
ほとんどの[
/実装には、両方のファイルパスが同じファイルを参照しているかどうかを確認する演算子もtest
あります(シンボリックリンクの確認にもかかわらず)。-ef