Виртуальная файловая система для Windows или Linux, объединяющая несколько каталогов в один

Виртуальная файловая система для Windows или Linux, объединяющая несколько каталогов в один

В OS/2 существовала "виртуальная файловая система Торонто", которая позволяла объединять несколько каталогов в один. Когда вы обращались к существующему файлу, виртуальная файловая система (VFS) знала, где искать реальный файл. Если вы создавали новый файл, она создавала этот файл в одном из указанных каталогов, который был назначен.

Это позволило объединить каталог на жестком диске и каталог на компакт-диске, при этом весь доступ будет осуществляться к компакт-диску, если только файл, к которому осуществляется доступ, также не находился на жестком диске или не был изменен; в таком случае использовался бы жесткий диск.

Мне всегда нравилась эта идея, и я хотел бы, чтобы что-то подобное существовало под Windows или Linux, но я не смог найти ничего подобного. Может ли кто-нибудь помочь?

решение1

Вам нужна какая-то объединенная файловая система.

В Linux overlayfs доступен из коробки. Также есть UnionFS и AUFS.mergerfsчто немного отличается, так как будет распределять записи по исходным каталогам в соответствии с настроенной политикой, но я упоминаю об этом для полноты картины.

Монтирование /media/cdromи ~/work-in-progressобъединение каталогов ~/cdrom-unionс помощью overlayfs:

mount -t overlay overlay -o lowerdir=/media/cdrom,upperdir=$HOME/work-in-progress,workdir=$HOME/workdir ~/cdrom-union

Я использую $HOMEвместо ~в -oаргументе, чтобы убедиться, что оболочка правильно разрешает пути.

~/workdirрабочий каталог, который overlayfs использует внутренне для своей работы. Он должен быть в той же файловой системе, что и upperdir в соответствии сарх вики.

К сожалению, я не знаком с особенностями Windows.

решение2

В Linux вы можете использовать жесткие ссылки, мягкие ссылки или привязанные монтирования.

В Windows можно использовать жесткие ссылки, мягкие ссылки, соединения или точки монтирования.

Связанный контент