如何在C语言中通过inode值获取目录名称?

3

我正在尝试为Bash添加新功能,这项工作需要一个函数从给定的inode值中获取目录名称。那么如何使其工作?我的意思是Bash的源代码中是否有一些内置函数可以实现这个功能?如果没有,任何帮助都将被接受。


你想要的是目录的inode还是包含文件的目录中的inode,你想知道它的名称吗? - Null Set
2
你知道一个文件可以存在于不同的目录中吗? - David Thornley
你能举个例子说明如何使用这个功能(以及它的用处)吗? - nategoose
2个回答

6

如果不搜索包含给定inode文件的目录,这是不可能的。文件名是对inode的命名引用,没有反向链接。


1
注意:btrfs具有/将具有反向链接。 - user502515

1
列出目录并获取..的inode,然后列出该目录并查找具有所需inode的文件的名称。

如果你只知道inode,而不是文件描述符,你该如何列出目录呢? - ephemient
@ephemient:哎呀,我猜那似乎是一个非常有用的东西,所以我认为你可以在内核之外做到它。 - Null Set
好的,我的情况是这样的,我是中国人,我的Linux系统配置为zh_CN.utf-8语言,但是你知道Windows的默认编码不是这个,一旦我使用scp从Windows复制文件到我的Linux服务器,就会保留原始编码,因此它将在我的Linux服务器上显示乱码。我认为我可以使用ls -i来显示所有文件或目录的inode值,然后使用cd -i inode_value进入一个显示乱码的目录。 - jyf1987
这个答案已经接近我的目的地,谢谢。 - jyf1987

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接