I'd solve this with rsync. I think its defaults even mirror the logic you requested. I use this on my Windows XP laptop to mirror my data up to my network share. I have to add options to get it to delete stuff on the target side - the default is to ignore target-side stuff that doesn't already exist on the source.

$ rsync source_dir target_dir

Added, minutes later.

Alternatively, you can use an iterator form of File::Find at Re: Re: (Perl6) Groking Continuations (iterators) and then just walk each directory tree in sequence. This will allow you to write this in perl with no serious problems. Its still easier to just have rsync handle it.


In reply to Re: searching and modifying two directory trees by diotalevi
in thread searching and modifying two directory trees by argv

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.