2010-04-12 3 views
4

У меня есть два больших дерева источников. Один из них имеет некоторые устаревшие файлы изображений. Я хотел бы автоматически обновлять все старые файлы изображений (png, jpg, gif) в одном исходном дереве с обновленными файлами изображений в другом исходном дереве.Как синхронизировать две локальные файловые структуры

Я использую Windows 7, но у меня установлен Cygwin. Я пробовал использовать rsync до сих пор, но без успеха.

Я надеялся, что я мог бы сделать что-то вроде:

rsync -r *.png newSourceTree oldSourceTree 

Если есть какой-то другой способ достижения той же вещи, например, сценарий Perl или Bash, я был бы открыт для использования этого.

Любая помощь будет высоко оценена.

Thanks, James.

ответ

1

насчет:

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

Спасибо Алекс. Я даже не рассматривал решение Windows: / – James

2

Вы хотите:

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

краткое объяснение: Вы хотите включить PNG файлы, включают в себя все каталоги (так что он может рекурсию), то исключить все остальное. Include/Exclude обрабатываются слева направо и по умолчанию включают все.

1

Unison предназначен для такого рода проблем. Вы можете синхронизировать все файлы с помощью

unison oldTree newTree -force newer 

Если вы хотите, чтобы коснуться только файлы изображений, читать документацию.

Смежные вопросы