Il y a beaucoup plus de propriétés à rsync que la réponse précédente ne le mentionne. Vous devriez les examiner vous-même :
man rsync
Mais pour votre problème, je suggérerais :
rsync -a --delete X Y
De cette façon, le récepteur (Y) supprimera tout fichier qu'il possède qui n'est pas dans X. Assurez-vous cependant de le faire correctement. Utilisé de manière incorrecte en tant que root peut facilement tuer votre système... :)
Jetez un œil à rsync(1). Il est destiné à faire à peu près exactement ce que vous voulez.
rsync -av X Y
Il prend en charge la copie à distance, via son propre protocole ou ssh, mais il peut également être utilisé localement.
Selon le comportement exact que vous souhaitez, vous pouvez également passer le --update
option. Cela indiquera à rsync de ne pas écraser les fichiers qui existent déjà sur la cible et qui sont plus récents que ceux de la source.
Si vous souhaitez supprimer des fichiers supplémentaires (c'est-à-dire des fichiers qui existent dans Y, mais pas dans X), vous pouvez ajouter le --delete
option.