<div dir="ltr"><div><div><div>Hi Simo,<br></div>I don't have shell access on the server where I'm downloading files from, so I can't run find there. So far the best option seems to be to use rsync --list-only --recursive to get a file with the list of files, then prune everything that I don't need from such a list_of_files.txt and do something like<br><br><code>rsync -av --files-from=list_of_files.txt / /my/local/path/</code><br><br></div>However I was frankly hoping for something easier and which would not require an intermediate file to massage.<br><br></div>Thanks a lot for your suggestion!<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 13, 2016 at 4:02 PM, Simos <span dir="ltr"><<a href="mailto:blug@chinesetearoom.com" target="_blank">blug@chinesetearoom.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, 13 May 2016 11:21:57 -0600<br>
Davide Del Vento <<a href="mailto:davide.del.vento@gmail.com">davide.del.vento@gmail.com</a>> wrote:<br>
<br>
> I have this question at<br>
> <a href="http://stackoverflow.com/questions/37198595/how-to-properly-match-directories-with-rsync" rel="noreferrer" target="_blank">http://stackoverflow.com/questions/37198595/how-to-properly-match-directories-with-rsync</a><br>
> if you prefer to answer there. Otherwise keep reading<br>
><br>
> I need to rsync some directories from one machine to another, but only<br>
> part of the tree. I think the easiest way to explain it would be to<br>
> run, on the server, tree -f (which prints the full path of each file)<br>
> and then grep'ing mon in the full path and rsynch'ing only the matches<br>
> of grep. Actually I would be happy to do it that way, but I don't have<br>
> shell access to the server, only rsync. Two step solution based on<br>
> greping output of rsync --list-only is totally acceptable.<br>
><br>
> It's actually simpler, because I also know that this mon appears only<br>
> as a suffix to a directory (the hierarchy is pretty rigid), so I tried<br>
> doing<br>
><br>
> rsync --dry-run -vrlpt --include='*/' --include='**/*mon/'<br>
> --exclude='*' --prune-empty-dirs<br>
><br>
> but that did not match anything. Ditto for --include='*mon/' instead<br>
> of the one with the double asterisk. Avoiding the --prune-empty-dirs<br>
> matched all the directories but no files, which I think is my problem.<br>
> So I tried to add an include pattern for some file extensions right<br>
> before the exclude pattern (which I would rather not do because I<br>
> don't want to track them all and they might change), but that simply<br>
> matched all those files, including the ones not in the "mon" trees.<br>
><br>
> And yes, I did see countless examples of people doing similar stuff,<br>
> which helped me making some progress (i.e. what you can see above),<br>
> but not solve the problem...<br>
</div></div>> _______________________________________________<br>
> Web Page:  <a href="http://lug.boulder.co.us" rel="noreferrer" target="_blank">http://lug.boulder.co.us</a><br>
> Mailing List: <a href="http://lists.lug.boulder.co.us/mailman/listinfo/lug" rel="noreferrer" target="_blank">http://lists.lug.boulder.co.us/mailman/listinfo/lug</a><br>
> Join us on IRC: <a href="http://irc.hackingsociety.org" rel="noreferrer" target="_blank">irc.hackingsociety.org</a> port=6667 channel=#hackingsociety<br>
<br>
Hi Davide,<br>
<br>
How about this?<br>
<br>
$ find toplevel | sort<br>
toplevel<br>
toplevel/amon<br>
toplevel/amon/file3<br>
toplevel/dir1<br>
toplevel/dir1/bmon<br>
toplevel/dir1/bmon/dir3<br>
toplevel/dir1/bmon/dir3/file5<br>
toplevel/dir1/bmon/file2<br>
toplevel/dir1/file1<br>
toplevel/dir2<br>
toplevel/dir2/file6<br>
toplevel/emon<br>
toplevel/file4<br>
<br>
$ rsync -arvm --include='*/' --include='*mon/***' --exclude='*' toplevel /tmp<br>
<br>
$ find /tmp/toplevel | sort<br>
/tmp/toplevel<br>
/tmp/toplevel/amon<br>
/tmp/toplevel/amon/file3<br>
/tmp/toplevel/dir1<br>
/tmp/toplevel/dir1/bmon<br>
/tmp/toplevel/dir1/bmon/dir3<br>
/tmp/toplevel/dir1/bmon/dir3/file5<br>
/tmp/toplevel/dir1/bmon/file2<br>
<br>
Only files under *mon directories are copied.<br>
<br>
Regards,<br>
<br>
Simos<br>
_______________________________________________<br>
Web Page:  <a href="http://lug.boulder.co.us" rel="noreferrer" target="_blank">http://lug.boulder.co.us</a><br>
Mailing List: <a href="http://lists.lug.boulder.co.us/mailman/listinfo/lug" rel="noreferrer" target="_blank">http://lists.lug.boulder.co.us/mailman/listinfo/lug</a><br>
Join us on IRC: <a href="http://irc.hackingsociety.org" rel="noreferrer" target="_blank">irc.hackingsociety.org</a> port=6667 channel=#hackingsociety<br>
</blockquote></div><br></div>