2016-06-07 2 views
0

Это своего рода странный (но вполне оправданный) прецедент для 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 qux 
Some Qux text. 

Есть ли способ сделать это, используя режим файла символической ссылки, или есть аналогичный способ? Или это совершенно невозможно, и я должен пойти другим путем?

ответ

1

Я не думаю, что такая вещь была бы возможна, потому что операции с файлом/каталогом начинались с запроса типа объекта. И системный кеш может включать и сообщать только по одному типу за раз. Таким образом, вы не сможете сообщить ОС, что запись является файлом и каталогом. Более того, большинство приложений имеют такие проверки, как «if IsFile then ... else ...», поэтому они просто пропустили бы вторую атрибуцию.

Смежные вопросы