Хорошо. После нескольких попыток сформулировать этот вопрос выясняется, что этот вопрос будет долгим. Anywho:
Рассмотрим эту файловую структуру:
photos/
ants/
pic1.jpg
animals/
dog.png
profile_pic.jpg
если вы делаете
cd photos
ls
ты получаешь
ants/ animals/ profile_pic.jpg
Однако, так как каталоги "Отпуск и животные" содержат только один файл каждый, возможно, было бы более полезно получить
ants/pic1.jpg ani../dog.png profile_pic.jpg
непосредственно, в отличие от необходимости посещения каждого из животных и отдыха. Однако при завершении вкладки, как и в cd a, вы захотите предложить каталоги.
Так что я знаю, что завершение bash выполняется скриптом /etc /bash_completion (я не хочу туда идти) и библиотекой readline, но это не очень влияет на ls и, конечно, не поможет, если вы хотите расширить функциональность до файла. Менеджеры такие наутилус. Поэтому я надеялся, что некоторые из этих проблем могут быть решены с помощью пользовательской файловой системы поверх предохранителя. Первоначальное исследование, основанное на этом руководстве, было несколько удручающим, поскольку файловая система fuse, похоже, никоим образом не различает мои разные варианты использования (readdir, opendir, releaseir каждый раз).
Формулировать вопрос: каким образом подобный функционал может быть реализован, если это возможно даже без серьезной доработки в ядре? Где мне искать дополнительную информацию?
Спасибо за ваше время!
РЕДАКТИРОВАТЬ: Чтобы уточнить, bash является полезным примером, но в конце я хочу, чтобы это было то же самое с помощью nautilus и любой другой программы, обращающейся к файлам, и я все равно напишу файловую систему для других вопросов.