I need to go through subdirectories of a directory /home/userName/ and find the files whose names begin with SY101 and their extension is .csv and transfer those files to another server. My question is how do I loop through subdirectories and keep looking for the files?

link|improve this question

67% accept rate
feedback

2 Answers

up vote 2 down vote accepted

You could do several things, this is probably the most efficient, but I dont know anything about the size of your files and your link between servers, but let me try:

find /home/userName/ -name 'SY101*.csv' | \
xargs tar cvfz - | ssh hostname 'tar xzf -'

This is going to copy the files to your home on the other server.

Please note the full path will be transfered.

link|improve this answer
What do you mean by full path will be transferred? – yogsma Sep 16 '10 at 21:34
2  
I would recommend the -print0 option for find and the -0 option for xargs just in case any filenames have spaces in them. – Dennis Williamson Sep 16 '10 at 22:34
feedback

Something like this might work for you:

rsync --recursive --include='SY101*.csv' --include='*/' --exclude='*' /home/userName/ username@hostname:destdir

This will reproduce the directory hierarchy of the source on the destination.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.