Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I have been looking for a bash (.sh) script or alike (anything that can be run as a linux script) which will copy the files contained within a folder. The catch is that i want a new directory created with only part of the directory structure. For example, i want the following copied:
It is actually 5 levels down (i.e., \1\2\3\4\5), consistently. The numbering and structure of the directory is automatically generated through a php upload script. If possible, it would be nice to be able to filter the files to copy based on file type (i.e., *.zip) but this is the least of my concern.
find /home/username/folder/*/*/*/*/*/ -type d -exec cp -R {} . \;
which yielded the following:
Code:
cp: cannot stat `/home/username/folder/0/1/2/3/9999/temp1/9999/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1/temp1': File name too long
I appreciate your help! The solution is to use the following command:
find /Source/*/*/*/*/*/ -type d -exec cp -R {} /Dest/ \;
Is there a way to use additional criteria to only copy directories which contain specific files? For example, I want the directory created but to only copy file with the naming convention 1.jpg and not 1a.jpg?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.