Tricky question for a bash noob like me, but i’m sure this this easier that it seems to me.
I’m currently using the find command as follows :
run "find #{current_release}/migration/ -name '*.sql'| sort -n | xargs cat >#{current_release}/#{stamp}.sql"
in my capistrano recipe.
Problem is #{current_release}/migration/ contains subfolders, and I’d like the find command to include only one of these, depending on it’s name (that I know, it’s based on the target environment.
As a recap, folder structure is
Folder
|- sub1
|- sub2
and i’m trying to make a find specifying to recurse ONLY on sub1 for example. I’m sure this is possible, just couldn’t find how.
Thanks.
Simply specify the directory you want as argument to find, e.g.
find #{current_release}/migration/sub1 ....EDIT: As per your clarification, you should use the
-maxdepthargument forfind, to limit the recursion depth. So, for example, you can usefind firstdir firstdir/sub1 -maxdepth 1.