通过文件 ID 访问文件并更改文件属性

通过文件 ID 访问文件并更改文件属性

就像每个文件一样,目录也有文件 ID。您可以通过输入以下代码来查看它们:

ls -i
  1. 如何通过文件 ID 查看文件内容?

  2. 如何将目录属性更改为文件(删除 D)以及反之亦然!

答案1

听起来您要查找的数据在文件系统中。问题的答案取决于您使用的文件系统。我假设您使用的是 ext3。

有关查看和修改文件系统数据的高级功能,请参阅调试文件(8)。但要小心,这个工具可能会损坏东西。这是一个使用带有快照的虚拟机的好机会(就像我推荐的那样这里)。拍摄快照,然后根据需要修改文件系统。您始终可以从较早的快照恢复虚拟机。

答案2

inode 到文件名:

find / -inum <number>

将目录转换为文件是不可能的。

有关目录内部数据的信息,请参阅目录

您还可以查阅 GNU C 库访问目录

答案3

-- 解决方案和工作原理 -- 因此 - inode 是每个目录都有记录的东西。事实上 - 每个目录都是一个文件,其中包含文件名列表及其对应的 inode 编号,

所以 - 如果你想查看目录 inode 里面的内容,你可以这样做 -

1) 使用你的硬盘打开 debugfs。我在 /dev/disks/by-id/ 下找到了我的。

debugfs ATA-434...blalbalba

然后输入cat <inode number>

或者cat filename

或者dump <inode number> outfile

您将获得该 inode 的数据!

但等一下!不是这样的!

inode 实际上不包含任何数据。它包含指向数据(块号)的指针。inode 实际上包含的是文件模式、属性、所有者、组、大小、链接等等!好东西?我们不仅可以使用 debugfs 查看数据,还可以修改它!

以下是具体操作方法!

1)以写模式打开debugfsdebugfs -w ATA4249...blalbla

2)以修改模式打开 inode 并修改/查看您喜欢的所有字段

mi <inode number>

就是这样!

相关内容