Вы можете использовать:
rsync -av --include='*.jar' --exclude='*' --delete \
sourcedir/ destdir/
Опция -a
представляет собой архивный режим, он сохраняет такие вещи, как ссылки и метки времени. (Полное объяснение см. на странице man
). -v
для детализации, удалите, если вы не заботитесь о журналах.
Это должно работать с вашими первыми тремя вариантами. Опция --delete
позаботится о вашем четвертом требовании, игнорируя исключенные файлы.
Если вы хотите включить каталоги, содержащие .jar
файлы, вы можете использовать
rsync -av --include='*.jar' --include='*/' --exclude='*' --delete \
sourcedir/ destdir/
Основываясь на ответе, расположенном здесь, если у вас есть дополнительные вопросы, это должно помочь вам:Фильтр Rsync :копирование только одного шаблона