Как создать копию каталога в Linux со ссылками

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

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

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

2 ответов


оказывается, это то, что я хотел:

cp -al <origdir> <newdir>

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


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

Unionfs позволяет любое сочетание ветвей только для чтения и записи, а также вставки и удаления ветвей в любом месте веера.


Первоначально я собирался рекомендовать это (я использую его лот):

предполагая, что разрешения не являются проблемой (например, требуется только чтение), я бы предложил привязать их на место.

mount -B <original> <new-location>
# or
mount --bind <original> <new-location>

<new-location> должен существовать как папка.