2012-01-19 220 views
1

像我這樣的bash noob的棘手問題,但我確信這在我看來更容易。 我目前使用find命令如下:Bash在當前文件夾中找到和#名稱#子文件夾遞歸地

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

問題是#{current_release} /遷移/包含子文件夾,我想find命令只包括其中的一個,這取決於它的名字(我知道,它是基於目標環境。

作爲一個回顧,文件夾結構

Folder 
|- sub1 
|- sub2 

,我試圖讓一個查找指定遞歸ONLY上SUB1例如,我敢肯定,這是可能的,只是怎麼也找不到。 謝謝。

+0

'find#{current_release}/migration/sub1'不是你想要的嗎? – spatz

+0

不,我可能沒有很好地解釋自己。目標是列出AT ONCE當前文件夾和指定子文件夾中的所有文件,但不包含任何其他子文件夾。 – pixelboy

+0

我更新了我的答案,希望這是你的意思。 – spatz

回答

2

只需指定您想要作爲參數查找的目錄,例如find #{current_release}/migration/sub1 ...

編輯:根據您的說明,您應該使用-maxdepth參數find來限制遞歸深度。因此,例如,您可以使用find firstdir firstdir/sub1 -maxdepth 1

+1

完美,非常感謝,不知道maxdepth選項! – pixelboy

+1

@pixelboy您也可以使用'-and -not -path'並指定您不想要'find'搜索的路徑。 –

0

你只需要追加那你find調用:

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

取決於你如何讓你想要的子目錄的決心,就應該能夠腳本,以及。

+0

目標是在當前文件夾和指定的子文件夾中查找所有文件,但不包含任何其他子文件夾。 – pixelboy

+1

對不起 - 我錯過了您的問題的'和當前目錄'部分。 @spatz有它,假設你不需要在sub1中遞歸。 – sarumont

相關問題