Bash найти в текущей папке и подпапке # name # рекурсивно - PullRequest
1 голос
/ 19 января 2012

Каверзный вопрос для меня, но я уверен, что это проще, чем мне кажется.В настоящее время я использую команду поиска следующим образом:

run "find #{current_release}/migration/ -name '*.sql'| sort -n | xargs  cat >#{current_release}/#{stamp}.sql"

в моем рецепте capistrano.

Проблема в том, что # {current_release} /igration / содержит подпапки, и я хотел бы найтиКоманда, чтобы включить только один из них, в зависимости от его имени (насколько я знаю, он основан на целевой среде.

В качестве резюме, структура папок

Folder
|- sub1
|- sub2

, и янапример, пытаюсь найти, определяя рекурсию ТОЛЬКО на sub1. Я уверен, что это возможно, просто не могу найти как. Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Просто укажите каталог, который вы хотите найти в качестве аргумента, например find #{current_release}/migration/sub1 ....

РЕДАКТИРОВАТЬ: Согласно вашему пояснению, вы должны использовать аргумент -maxdepth для find, чтобы ограничить глубину рекурсии,Так, например, вы можете использовать find firstdir firstdir/sub1 -maxdepth 1.

0 голосов
/ 19 января 2012

Вам просто нужно добавить это к вашему вызову find:

 find #{current_release}/migration/sub_you_want -name ...

В зависимости от того, как вы определяете нужный подкаталог, вы также должны иметь возможность его сценария.

...