Unix 将文件视为FUSE中的文件和目录?

Unix 将文件视为FUSE中的文件和目录?,unix,filesystems,fuse,Unix,Filesystems,Fuse,对于FUSE来说,这是一种奇怪的(但完全合理的)用例,但是有没有办法欺骗运行在FUSE文件系统实现之上的程序将所有条目列为文件,同时也允许读取“文件”和目录 例如,有没有一种方法可以让FUSE文件系统按以下方式运行 $ cd mnt $ ls foo bar $ cat foo Some foo text! $ pwd /mnt $ cd foo $ ls qux qix $ cd qux $ pwd /mnt/foo/qux $ cd .. $ pwd /mnt/foo $ cat

对于FUSE来说,这是一种奇怪的(但完全合理的)用例,但是有没有办法欺骗运行在FUSE文件系统实现之上的程序将所有条目列为文件,同时也允许读取“文件”和目录

例如,有没有一种方法可以让FUSE文件系统按以下方式运行

$ cd mnt
$ ls
foo bar

$ cat foo
Some foo text!

$ pwd
/mnt

$ cd foo
$ ls
qux qix

$ cd qux
$ pwd
/mnt/foo/qux

$ cd ..
$ pwd
/mnt/foo

$ cat qux
Some Qux text.

有没有办法利用符号链接文件模式来实现这一点,或者有没有类似的方法?或者这是完全不可能的,我应该走另一条路吗?

我认为这是不可能的,因为文件/目录操作将从请求对象的类型开始。系统缓存一次只能包含和报告一种类型。因此,您将无法告诉操作系统该条目既是文件又是目录。此外,大多数应用程序都有类似“if IsFile then…else…”的检查,因此它们只会错过第二个属性