
В 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 можно использовать жесткие ссылки, мягкие ссылки, соединения или точки монтирования.