Compare el file existente en dos directorys diferentes, copie si no existe, de lo contrario, sobrescríbalo

Estoy tratando de build un scrip que compare un file dentro de 2 directorys diferentes, luego cópielos de dir1 a dir2 si no existe en el directory2, o sobreescríbalo si ya existe.

Sé que puedo usar diff dir1 dir2 pero luego cómo copyr el resultado a dir2. porque el command diff me da un resultado como only in dir1: file1.txt , desde mi entender que no es un file en sí (¿no?)

Para la parte de sobrescritura, decido usar el command [ -ot ] , pero de nuevo, por lo que entiendo, el [ -ot ] solo se puede comparar con el file pero no con el directory.

Lo siento, no puedo build ningún script con la pregunta, soy muy nuevo en scripting y linux y sigo aprendiendo = (

rsync funciona de forma local y realiza testings tanto en las marcas de time del file como en el tamaño de los files.

 rsync --archive /path/to/source/ /path/to/destination/ 

También puede usar rsync en files individuales.

¿Por qué no cp ?

 \cp -f /path/to/dir1/* /path/to/dir2/