Рейтинг:0

Как создать теневой каталог

флаг us

Я хочу создать теневой каталог каталога D. Теневой каталог D1 должен иметь ту же структуру, что и D, но не должен иметь общих узлов с D. Каждый файл в D должен быть представлен символической ссылкой на этот файл в D1. Идея состоит в том, что операции над D1 никогда не должны изменять D, чтобы я мог свободно удалять что-либо в D1, не затрагивая D. Как этого добиться? Я мог бы, конечно, сделать простую древовидную копию D, но это привело бы к дублированию копий файлов.

[Следующее было перенесено из комментария.] Вот чего я хочу добиться. У меня есть несколько музыкальных файлов в разных местах. Я могу создать один каталог D, содержащий символические ссылки на все из них. Мой план состоит в том, чтобы создать теневой каталог D1, который изначально содержит копии символических ссылок D. Когда я играю музыку, я удаляю ее узлы из D1, так что D1 содержит только указатели на музыку, которую я не играл (на разных уровнях в D). Тем временем моя оригинальная музыкальная библиотека не изменилась. Я понимаю, что могут быть и другие способы добиться того же самого, но этот метод концептуально прост и требует только стандартного программирования оболочки.

Nmath avatar
флаг ng
Что такое «теневой каталог»? Можете ли вы быть более конкретным и менее загадочным в отношении того, что вы собираетесь делать? Непонятно, что вы имеете в виду под своим обозначением "Д"?
флаг cn
«но это приведет к дублированию копий файлов». и «Идея состоит в том, что операции над D1 никогда не должны изменять D» являются противоречиями.
heynnema avatar
флаг ru
Это не вопрос Ubuntu... а скорее вопрос Windows.
waltinator avatar
флаг it
Кажется глупой идеей — почему бы системе контроля версий (`rcs`, `git`, `sccs`, ...) не добиться цели? Однако, если вы застряли на этой идее, прочитайте `man inotify`.
флаг us
Вот чего я хочу добиться. У меня есть несколько музыкальных файлов в разных местах. Я могу создать один каталог D, содержащий символические ссылки на все из них. Мой план состоит в том, чтобы создать теневой каталог D1, который изначально содержит копии символических ссылок D. Когда я играю музыку, я удаляю ее узлы из D1, так что D1 содержит только указатели на музыку, которую я не играл (на разных уровнях в D). Тем временем моя оригинальная музыкальная библиотека не изменилась. Я понимаю, что могут быть и другие способы добиться того же самого, но этот метод концептуально прост и требует только стандартного программирования оболочки.
vanadium avatar
флаг cn
Вместо того, чтобы объяснять в комментарии, объясните в своем фактическом вопросе - используйте редактирование. Комментарии могут быть не прочитаны или могут исчезнуть. Что для вас «узлы»? Как вы их удаляете? Я могу только удалять файлы, папки или символические ссылки. Я боюсь, что у вас есть проблема XY и что есть лучшие способы добиться того, чего вы хотите. Например, зеркальная копия жестко связанных файлов.
флаг us
Система контроля версий не очень подходит, потому что изменения в музыкальной библиотеке являются чисто аддитивными. Я почти никогда не меняю то, что уже есть. Я не ожидаю, что в него будет добавлено больше музыки.
флаг us
Винда здесь не актуальна, так как я все делаю под линуксом, и для простоты хочу все это сделать с помощью шелла.
Рейтинг:1
флаг cn

А также с помощью п, вы также можете делать символические ссылки на файлы с ср с помощью флаг. Это полезно, потому что это все еще работает с и флаги, что означает, что вы можете клонировать целое дерево символических ссылок от D до D1.

Для правильной работы D должен быть абсолютным путем или преобразованным в него с помощью $(реальный путь D).

Соединяем все это вместе:

cp -asT "$(реальный путь D)" D1

Чтобы было ясно, редактирование файлов в D1 по-прежнему изменит оригиналы в D, но ссылки в D1 можно безопасно удалить.

Ответить или комментировать

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