views:

511

answers:

2

I have a Wordpress upload folder that is structured using subfolders for months.

wolfr2:uploads wolfr$ tree .
.
|-- 2007
|   |-- 08
|   |   |-- beautifulkatamari.jpg
|   |   |-- beautifulkatamari.thumbnail.jpg
|   |   |-- beetle.jpg
|   |   |-- beetle.thumbnail.jpg

How do I use terminal to copy all the images recursively into another folder? I can't seem to wildcard folders like you can wildcard filenames. (e.g. *.jpg or *) (I'm on Mac OSX)

cp -R ./*.jpg .

?

A: 

Off the top of my head:

find . -type f -name \*.jpg -exec cp \{\} $TARGETFOLDER \;

If that doesn't work, comment and I'll try again, but find is definitely the way to go.

Lucas Jones
+1  A: 

This will copy all *.jpg files from the current folder to a new folder and preserve the directory structure.

tar cvfp `find . -name "*.jpg"` | (cd <newfolder>; tar xfp -)


To copy without preserving the directory structure:

cp `find . -name "*.jpg"` <newfolder>
Richard Pennington
I should have carlified in the OP that I want to get rid of the structure and just want all the images in a flat folder.
Wolfr
Ok, then cp `find . -name "*.jpg"` <newfolder>
Richard Pennington
Darn, my backquotes around the find were left off.
Richard Pennington
Perfect. thank you.
Wolfr