copy_only_missing? – Копировать из / A в / C только пути, отсутствующие в / B и / C – кратким способом

Я хотел бы скопировать из / A в / C только пути, отсутствующие в / B и / C. (Предположите, что это пути и могут представлять собой удаленные местоположения, например, смонтированные через sshfs )

Интересно … Есть ли более краткий путь, чем писать цикл, итерации по файловой системе и проверки, файл по файлу?

Пример содержимого каталогов деревьев / A , / B , / C :

/ A :

 /A/1abc/qwe /A/2abc/asd /A/3abc/zxc /A/4abc/rty 

/ B :

 /A/2abc/asd /A/3abc/zxc 

/ C :

 /C/1abc/qwe 

Ожидается: скопировать с / A на / C только путь 4abc/rty :

 /A/4abc/rty -> /C/4abc/rty 

Чтобы проиллюстрировать практические примеры / A , / B , / C , приводящие к такому сценарию:

  • вы делаете резервную копию, копируете из некоторого / источника ( / A ) в некоторый / целевой ( / B ), а некоторые пути не копируются. Таким образом, вы хотите иметь копию в любом случае отсутствующих. Таким образом, вы найдете / another_destination ( / C ), который может их принять, и вы хотите скопировать только отсутствующие. Вот пример ограничений, из-за которых может произойти копирование с / A на / B : диск был заполнен; ограничение файловой системы / B (например, длина имени файла), в то время как нет в файловой системе / C ; и т.п.

One Solution collect form web for “copy_only_missing? – Копировать из / A в / C только пути, отсутствующие в / B и / C – кратким способом”

Одним из решений является создание союзного монтирования B и C с C как ветви записи. Тогда проблема сводится к копированию из A в B + C только файлов, отсутствующих на B + C, что можно сделать с помощью

 rsync -a --ignore-existing /A /B+C 

Для монтирования монтирования одна из возможностей – предохранитель unionfs .

 unionfs-fuse -o cow /C=RW:/B=RO /B+C 

Или unionfs:

 mount -t unionfs -o dirs=/C=rw:/B=ro unionfs /B+C 
  • Разрешения на доступ к файлу в главном каталоге, как я начинаю?
  • Экспортируйте плейлист m3u в каталог, чтобы они отображались в списке воспроизведения
  • Синхронизировать файлы с Mac на флешку - автоматически?
  • Rsync: перезаписать файл журнала
  • Удалите файлы в месте назначения, которые находятся в источнике, используя rsync
  • Почему rsync настаивает, что есть разница во второй раз?
  • Какие папки следует исключать / исключать при миграции сервера с помощью rsync
  • Использовать rsync только с закрытыми файлами
  • rsync mkstemp failed Неверный аргумент (22) с поддержкой davfs облака Box.com
  • rsync - копировать содержимое каталога только в том случае, если определенный файл не существует
  • Можно ли использовать rsync для создания только жестких ссылок, а не копий?
  • Linux и Unix - лучшая ОС в мире.