Что-то вроде символически связанного файла, но с привязанными данными изменения?

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

Например:
Если у меня есть файл hello-world.txt , и я создаю символически связанный файл, указывающий на него,

 ln -s /path/to/hello-world.txt /path/to/symlink 

Я не могу изменить содержимое symlink без изменения hello-world.txt , а также изменить все другие файлы, которые указывают на hello-world.txt . Я понимаю, что символически / жестко связанные файлы, как предполагается, остаются теми же (потому что они являются одним и тем же файлом в некотором смысле), но было бы здорово, если бы я мог написать файл, который ссылается на конкретный файл, а затем также предоставляет сведения об изменении которые применяются при каждом чтении файла.

Я попытался создать свой собственный тип файла, используя обычный текст, который выглядит так:

 /path/to/file/being/referenced change statement change statement ... 

Затем я предоставил этим файлам собственное расширение файла и тип mime и создаю промежуточную программу для перенаправления на указанный файл и в основном попытаюсь имитировать поведение символической ссылки. Проблема заключается в том, что файл не «действительно» ссылается на другой файл, и поэтому на самом деле чтение файла (с помощью команды cat или с приложением процессора c ++ в файле и т. Д.) Не получит той же информации, что и символически связанный файл. Я не уверен, могу ли я обеспечить крючок для такого рода вещей, и программа выводит правильный текст для того, что его читает. Может быть, что-то с файлами с каналами? Я не знаю.

Какой был бы лучший способ добиться такого поведения в файловой системе?

Возможно, аналогия, которая наилучшим образом описывает типы динамических возможностей, которые я хочу иметь, – это то, как файлы php работают в Интернете. В тот же файл можно ссылаться с использованием дополнительных параметров, и это изменяет содержимое файла, прочитанного пользователем.

2 Solutions collect form web for “Что-то вроде символически связанного файла, но с привязанными данными изменения?”

Возможно, вы сможете создать это с помощью FUSE или одной из систем наложения, таких как UnionFS. Я не думаю, что это можно сделать без драйвера файловой системы или для того, чтобы каждая программа, которая обращается к нему, использует LD_PRELOAD для изменения поведения read ().

Существует несколько возможных проблем с реализацией:

  • чтобы применить изменения, вы должны прочитать оба файла и как-то сохранить промежуточную информацию; http://en.wikipedia.org/wiki/Rope_%28data_structure%29 может помочь, но что, если базовый файл и файл изменений имеют размер как несколько Gb? Кроме того, это остановит программу, которая откроет файл во время применения изменений.

  • что произойдет, если основной файл изменится таким образом, что инструкции изменений больше не применяются?

  • на самом деле, что произойдет, если основной файл вообще изменится?

  • что произойдет, если вы попытаетесь записать в исправленный файл?

Возможно, вы сможете сделать что-то подобное с помощью patch . «Симлинк» тогда будет в основном быть shellscript, который читает оригинал и применяет патчи. Но я не слышал ничего готового, который делает то, что вы хотите; если кто-нибудь еще придумает это, мне будет очень интересно. В противном случае это было бы интересное упражнение по программированию.

  • Как изменить мой сценарий для резервного копирования моих файлов
  • Каталоги ссылок в CentOS
  • Как apache определяет, какой каталог будет отображаться из public_html?
  • Скопировать символическую ссылку И где она указывает на использование rsync
  • cp SOMEFILE .. копирует в другой каталог после cd'ing через символическую ссылку
  • Symlink в тот же каталог
  • Есть ли способ создать ссылку, которая действует как ярлык?
  • аудит системных вызовов symlink / symlinkat здесь не работает
  • Где хранится информация о жестких / непрямых ссылках?
  • Если символическая ссылка на NFS указывает на локальный диск, будет ли потерян локальный диск?
  • символическая ссылка на каталог и относительный путь
  • Solaris tar: «Не удалось создать символическую ссылку: не каталог»
  • Interesting Posts

    Как монтировать Clonezilla img для извлечения файлов?

    Изменения в файлах не отображаются до размонтирования раздела

    Как заставить звук работать на Mozilla Firefox 52?

    Апплет панели макета клавиатуры в MATE 1.6

    «Nohup sudo …» не запрашивает passwd и ничего не делает

    Как использовать интерфейс Linux kernel bind / unbind для USB-HID-устройств?

    Не удается подключиться к Fedora на порту 80

    Автоответчик для OPENSSL с использованием HEREDOC

    Как использовать grep для поиска текстовой строки в файлах в подпапках родительской папки без ключа -r

    Как я могу избежать сообщений «Запустить fsck вручную», позволяя экспериментировать с изменениями системного времени?

    Создавать, связывать процессы в Linux

    Обновление apt-get не работает после установки в kali roll 2016

    Могу ли я настроить звуковое устройство loopback?

    Синтаксическая ошибка завершения броуза

    есть ли инструмент с открытым исходным кодом для измерения производительности процессора?

    Linux и Unix - лучшая ОС в мире.