you*_*iao 32 linux filesystems inode
我发现在我的根目录下,有一些目录具有相同的 inode 编号:
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
Run Code Online (Sandbox Code Playgroud)
我只知道目录的名称保存在父目录中,而它们的数据保存在目录本身的 inode 中。
我在这里很困惑。
这就是我在跟踪路径名 /home/user1 时的想法。
ilk*_*chu 43
他们在不同的设备上。
如果我们查看 的输出stat,我们还可以看到文件所在的设备:
# stat / | grep Inode
Device: 801h/2049d Inode: 2 Links: 24
# stat /opt | grep Inode
Device: 803h/2051d Inode: 2 Links: 5
Run Code Online (Sandbox Code Playgroud)
所以这两个位于不同的设备/文件系统上。inode 编号仅在文件系统中是唯一的,因此这里没有任何异常。在 ext2/3/4 上,inode 2也总是根目录,所以我们知道它们是各自文件系统的根。
设备号 + inode 的组合在整个系统中可能是唯一的。(有些文件系统没有传统意义上的 inode,但我认为他们仍然必须在它们的位置伪造某种唯一标识符。)
那里的设备编号似乎与设备节点上显示的相同,因此/dev/sda1保存文件系统所在的/位置:
# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Sep 21 10:45 /dev/sda1
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 25
任何给定文件的 inode 编号对于文件系统都是唯一的,但不一定对于安装在给定主机上的所有文件系统都是唯一的。当您有多个文件系统时,您会在文件系统之间看到重复的 inode 编号,这是正常的。