如果您有访问find与find (GNU findutils)和没有的POSIX find,你可以用它 -inum选择了它,
-inum n
File has inode number n. It is normally easier to use the
-samefile test instead
Run Code Online (Sandbox Code Playgroud)
只需将它与-exec选项一起使用并使用打开文件cat,
find . -inum 1346087 -exec cat {} \;
Run Code Online (Sandbox Code Playgroud)
假设inode我的文件的sample.txt值为
ls -id sample.txt
1346087 sample.txt
Run Code Online (Sandbox Code Playgroud)
您无法通过inode访问文件,因为这会通过权限中断访问控制.例如,如果您没有遍历目录的权限,则无论文件的权限是什么,您都无法访问该目录中的任何文件.如果您可以通过inode访问文件,那将绕过目录权限.
有一些方法可以通过inode编号获取文件的路径或名称,例如使用find.获得文件的一个路径后,您可以使用任何常规工具.
find有一个inum参数来查找inode文件.这是一个例子:
find -inum 1704744 -exec cat {} \;
Run Code Online (Sandbox Code Playgroud)
这将使用inode打印文件的内容1704744,假设它位于当前目录或其子项之一.
注意:ls还有一个-i选项可以获取与文件关联的inode.
使用ext2 / ext3 / ext4文件系统获取inode:
inode=262552
device=/dev/sda1
sudo debugfs -R "ncheck $inode" $device 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
输出(示例):
索引节点路径名 262552 / var / log / syslog
显示文件内容:
sudo debugfs -R "ncheck $inode" $device 2>/dev/null | awk '/[1-9]/ {print $2}' | xargs cat
Run Code Online (Sandbox Code Playgroud)