How to avoid copying empty directories?

Dave Dykstra dwd at bell-labs.com
Thu Nov 29 09:47:28 EST 2001


On Thu, Nov 29, 2001 at 09:23:18AM +1100, Martin Pool wrote:
> On 28 Nov 2001, Dave Dykstra <dwd at bell-labs.com> wrote:
> > On Tue, Nov 27, 2001 at 04:03:58PM -0800, btang at pacific.jpl.nasa.gov wrote:
> > > rsync -avu --include 'tmp1/*/*.c' --include "*/" --exclude "*" tmp1 tmp2
> > > 
> > > The above command copies all the empty directories under tmp1/ . Is there
> > > any way to avoid it?
> > 
> > Currently the only way is to explicitly include the parent directories
> > you want instead of --include "*/".
> 
> A quick fix is to post-process the directory with 
> 
>   find tmp2 -type d -empty -depth -exec rmdir {} \;
> 
> I think the best fix is to add scripting support:
> 
>   rsync -avu --perl 'filter() { ( -d && -s ) || /\.c$/; }' here friendly:/tmp
> 
> Anybody else like this idea?


Nah, the best fix in this case is --files-from.  I'm not too keen on the
scripting idea.  Seems like more bloat to me.  With --files-from people
can use whatever script they like to generate the list of files before
sending it to rsync.

- Dave




More information about the rsync mailing list