синхронизировать конкретный файл рекурсивно, но только в подкаталогах, присутствующих в пункте назначения

У меня есть два каталога dirOrig и dirDest на разных удаленных серверах. Оба они имеют множество подкаталогов на разных глубинах. Теперь мне нужно скопировать определенный файл или расширение – скажем, file1.txt рекурсивно из dirOrig в dirDest . Но мне нужно скопировать файл, только если этот подкаталог уже присутствует в dirDest .

Например, я могу систематически копировать только определенный файл из источника в пункт назначения, используя rsync, используя

 rsync -zarv --prune-empty-dirs --include "*/" --include="file1.txt" --exclude="*" "dirOrig" "dirDest" 

Но как ограничить эту копию только в подкаталогах, присутствующих в пункте назначения ( dirDest )

One Solution collect form web for “синхронизировать конкретный файл рекурсивно, но только в подкаталогах, присутствующих в пункте назначения”

Я не знаю ни одной команды, но взлом, который я придумал, выглядит следующим образом.

  1. Используйте rsync для копирования dirOrig с dirOrig на server2

    rsync -zarv --prune-empty-dirs --include "*/" \ --include="file1.txt" --exclude="*" "server1:dirOrig" \ "server2:dirOrig"

  2. Удалите подкаталоги в скопированном dirOrig , которых нет в dirDest используя comm

    comm -23 <( cd server2:dirOrig && find -mindepth 1 -type d | sort ) \ <( cd server2:dirDest && find -mindepth 1 -type d | sort ) \ | ( cd server2:dirOrig && xargs rm -rf )

  3. Наконец rsync dirDest с dirOrig на основе контрольной суммы и удалите все файлы в dirOrig, отсутствующие в dirDest, за исключением file1.txt

    rsync -acv --exclude=file1.txt --delete \ server2:dirDest server2:dirOrig

  • Система Rsync'ing, исключение, похоже, не работает
  • Может ли rsync фиксировать отметки времени без повторной загрузки?
  • Почему существует несколько потоков rsync?
  • rsync --del или --delete
  • Возврат удаленных файлов rsync
  • Rsync --bwlimit не работает
  • rsync плейлист mpd
  • lsyncd и дополнительные параметры для rsync
  • В чем разница между дифференциальным и инкрементным резервным копированием в терминах команды rsync?
  • rsync «нет такого файла или каталога» при использовании шаблона
  • Как проверить быстрый вывод rsync
  • rsync генерирует каталог назначения большего размера, чем источник?
  • Interesting Posts

    Все службы пользователя убиваются при запуске нескольких сервисов под этим пользователем с помощью systemd

    Какие возможности Linux мне нужны для записи в / proc / sys / vm / drop_caches?

    Могу ли я настроить указанный PEAP в сетевом менеджере

    Linux устанавливает аппаратные часы в UTC и системное время по местному времени

    Копирование содержимого буфера обмена в файл автоматически и непрерывно?

    Есть ли hpdarm -Y, чтобы остановить IO на моем жестком диске?

    Невозможно получить самую низкую яркость с ядром 4.4.0-53-generic

    Bash (одиночная строка): выполнить вторую команду, если сначала это произойдет, выполните 3-е, если это не так?

    почему отсутствует apt docs? как его вернуть?

    Авахи-демон на встроенном Linux, работает, но не работает

    Невозможно найти libgmp при компиляции GCC 4.5.2

    Что «сломано» в семантике наследования cpuset cgroup в ядре Linux?

    Как извлечь первый код base64 из файла?

    Как запустить программу, установленную с помощью playonlinux из командной строки linux

    Команда Split для создания файла с номером в качестве имени файла

    Linux и Unix - лучшая ОС в мире.