2010-04-12 5 views
4

J'ai deux arbres source de grande taille. L'un d'eux a des fichiers d'image périmés. Je voudrais mettre à jour automatiquement tous les vieux fichiers d'image (png, jpg, gif) dans un arbre de source avec les fichiers d'image à jour dans l'autre arbre de source. J'utilise Windows 7, mais Cygwin est installé sur mon ordinateur. J'ai essayé d'utiliser rsync jusqu'ici mais sans succès.Comment synchroniser deux structures de fichiers locaux?

J'espérais que je pouvais faire quelque chose comme:

rsync -r *.png newSourceTree oldSourceTree 

S'il y a une autre façon de réaliser la même chose par exemple un script Perl ou Bash, je serais ouvert à l'utiliser aussi.

Toute aide serait grandement appréciée.

Merci, James.

Répondre

1

Qu'en est-:

robocopy c:\source\ c:\destination\ *.png *.gif /s 
+0

Merci Alex. Je n'ai même pas considéré une solution Windows: / – James

2

Vous voulez:

rsync -av --include '*.png' --include '*/' --exclude '*' newSourceTree/ oldSourceTree/ 

Une explication rapide: Vous voulez inclure des fichiers .png, comprennent tous les répertoires (afin qu'il puisse récursivité), puis exclure tout le reste. Inclure/Exclure sont traités de gauche à droite et incluent par défaut tout.

1

Unison est conçu pour exactement ce genre de problème. Vous pouvez synchroniser tous les fichiers à l'aide

unison oldTree newTree -force newer 

Si vous voulez toucher uniquement les fichiers d'image, lisez la documentation.

Questions connexes