Comment append / replace uniquement des files modifiés / mis à jour récursivement pour 2 dossiers?

Donc, je fais actuellement des choses comme:

rm -rf ../../../$CLOUD_INSTALL_SUBDIR/lib_boost mkdir ../../../$CLOUD_INSTALL_SUBDIR/lib_boost cp -r ../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/* ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/ 

Ce qui craint … Donc, je me request comment mettre à jour / supprimer / append uniquement les files mis à jour entre 2 dossiers (dans la démo nous avons le dossier avec les derniers trucs ../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/ et un dossier avec des choses qui peuvent être obsolètes ../../../$CLOUD_INSTALL_SUBDIR/lib_boost )?

Rsync est votre meilleur ami.

 rsync -av original/folder/ new/folder/ 

Les barres obliques sont importantes sur les deux; si vous excluez le premier, il copyra ce dossier comme son propre dossier dans new/folder/ . Il est préférable d'utiliser l' -a pour conserver les permissions, les horodatages, etc.

Rsync créera également automatiquement des directorys pour dupliquer la structure.

Vous pouvez utiliser rsync pour cela, dans votre exemple il va aimer ça:

 rsync -va ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/ ../../../$CLOUD_INSTALL_SUBDIR/lib_boost 

Où l'option -v active le mode verbeux et -a active le mode archive

Vous pouvez en savoir plus sur rsync sur sa page de manuel