Linux 通过inode获取文件详细信息

Linux 通过inode获取文件详细信息,linux,Linux,当我知道inode时,我需要一个bash脚本来获取有关文件的详细信息。系统是Linux。您可以将-find与-inum和-xdev组合使用。这将为您提供文件名(它可以有多个名称),您可以从中找到所需的任何信息。类似于: find $SEARCHPATH -maxdepth $N -inum $INUM -exec ls -l {} \; 由于文件名链接到inode,反之亦然,因此需要以蛮力方式执行此操作。如果你知道它应该在哪里,那么-maxdepth就是缩小它的范围。如果搜索包含多个文件系统的

当我知道inode时,我需要一个bash脚本来获取有关文件的详细信息。系统是Linux。

您可以将
-find
-inum
-xdev
组合使用。这将为您提供文件名(它可以有多个名称),您可以从中找到所需的任何信息。

类似于:

find $SEARCHPATH -maxdepth $N -inum $INUM -exec ls -l {} \;

由于文件名链接到inode,反之亦然,因此需要以蛮力方式执行此操作。如果你知道它应该在哪里,那么-maxdepth就是缩小它的范围。如果搜索包含多个文件系统的树,也可以使用ad-xdev。

如果专门处理ext2/3文件系统,可以使用debugfs进行inode-to-file查找,这比使用find查找包含许多文件的大型文件系统要快得多

debugfs -R "ncheck $inode" /dev/device 2> /dev/null | tail -1 | awk '{print $2}'

“查找”仍然是您的最佳选择,据我所知,没有其他文件系统不可知的方法。

好主意,但我认为这仍然需要强制执行,而且您没有缩小路径的奢侈。我的系统用debugfs查找inode所用的时间与用find查找inode所用的时间大致相同。然而,在我的ext4根分区上,有181558个inode(这不是真正的“大”),
sudo find/-mount-inum$i
始终比
sudo debugfs-R“ncheck$i”/dev/sda1
快(约0.28秒vs~0.52秒)。任何拥有大型文件系统的人都可以测试这个命令吗?在测试之前是否使缓冲区缓存无效<代码>同步;同步;echo 3>/proc/sys/vm/drop\u缓存