要了解Ubuntu中不同对象的相同inode编号

Léo*_* 준영 2 ubuntu inode

为什么/ cdrom与/sys/devices/platform/powerUbuntu中的inode -number相同?

以下在我的Ubuntu中具有相同的inode编号

./media/BACKUP_1/MISC
./cdrom
./sys/devices/platform/power
Run Code Online (Sandbox Code Playgroud)

我通过在root运行以下来获取它们

find . -inum 12 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

回复Leffler的回答

我跑

stat cdrom
Run Code Online (Sandbox Code Playgroud)

我明白了

  File: `cdrom' -> `media/cdrom'
  Size: 11              Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d      Inode: 12          Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-08-03 04:25:35.000000000 +0300
Modify: 2009-08-03 04:19:05.000000000 +0300
Change: 2009-08-03 04:19:05.000000000 +0300
Run Code Online (Sandbox Code Playgroud)

这些信息告诉你什么?

回复Leffler的编辑

通常,您可以将设备编号分解为主要和次要设备编号,这是设备打印的"ls -l".

这个命令ls -l cdrom给了我这个

lrwxrwxrwx 1 root root 11 2009-08-03 04:19 cdrom -> media/cdrom 
Run Code Online (Sandbox Code Playgroud)

你怎么看到这个主要和次要设备号?

Jon*_*ler 6

这些设备可能位于不同的文件系统上 - 它是文件系统和唯一的inode编号的组合.

如果使用stat()系统调用,则相关字段为st_inost_dev(并st_rdev标识特殊设备).


问题被延长了 - 询问可以从中收集哪些信息:

  File: `cdrom' -> `media/cdrom'
  Size: 11              Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d      Inode: 12          Links: 1
Run Code Online (Sandbox Code Playgroud)

从中可以收集到很多东西.关键是这个符号链接在文件系统上,设备号(st_rdev)为0x0801(或2049),并且inode号为12.通常,您可以将设备号解析为主设备号和次设备号,这是什么' ls -l'为设备打印.有一个很好的机会(但我还没有正式验证这一点)主要设备号是8而次要设备是1(基于十六进制表示0x0801).


这个问题第二次延长:

这个命令ls -l cdrom给了我这个

lrwxrwxrwx 1 root root 11 2009-08-03 04:19 cdrom -> media/cdrom
Run Code Online (Sandbox Code Playgroud)

你怎么看到这个主要和次要设备号?

简短的回答是"你不能".其中一个的输出可能是适当的信息:

ls -l media/cdrom
ls -lL cdrom
Run Code Online (Sandbox Code Playgroud)

stat我建议,上一个问题中显示的设备(命令的输出)主要设备8和次要设备1.您可以通过ls -l在作为文件系统安装的设备上运行' '来找到它..您可以使用' df .'来查找已安装设备的名称 - 可能还有其他机制也可以使用.