Unison is a file-synchronization tool for Unix and Windows. See the manual for a detailed look at it's capabilities.