Você pode listar arquivos modificados usando rsync :
rsync -rnc --log-format='%f' new_dir/ old_dir/
-
-rsignifica recursivo -
-nsignifica executar uma execução de teste (sinônimo para --dry-run) -
-cdiz ao rsync para comparar o arquivo dependendo de sua soma de verificação -
--log-format='%f'nos fornece nomes de arquivos (formato longo)
Isso lhe dará a lista de arquivos modificados em new_dir /
Você só precisa fornecer essa lista para zip :
zip patch.zip 'rsync -rnc --log-format='%f' new/ old/'
Observação se você fornecer o caminho completo ( /path/to/new/dir/ ) usando o formato de nome longo ( %f ), rsync retornará uma linha adicional ( /path/to/new/dir/. ). Se você usar o formato de nome abreviado ( %n ), rsync não retornará esta linha.