2016-07-11 91 views
0

我是學生學習bash。我目前正試圖打印一系列絕對文件路徑來運行其他腳本。使用bash打印文件路徑

當前echo $PWD, *In不起作用。 我的文件結構看起來像。

/home/hayden/myProject/gene 

在這個目錄下有幾個文件夾但我特別感興趣的有三個。

/largeIn/ 
/mediumIn/ 
/smallIn/ 

在這些文件夾中有不同名稱的文件,全部以.fa結尾。

有沒有簡單的方法來提取文件路徑到txt文件?

到看起來像這樣

/home/hayden/myProject/gene/largeIn/file.fa 
/home/hayden/myProject/gene/mediumIn/file.fa 
/home/hayden/myProject/gene/smallIn/file.fa 

謝謝

編輯:@Afle解決方案是成功的。

+1

也許'ls $ PWD/* In/*。fa'? – yellowantphil

+2

如果任務不是特別使用'bash',我會建議使用Unix工具'find':'find/home/hayden/myProject/gene/-name'* .fa''。 – Alfe

+1

你的問題是如何**找到路徑或如何**提取他們? –

回答

1

看看標準的Linux find實用程序。當你使用任何shell時,這將是你的朋友,而不僅僅是bash。這是一個在目錄中遞歸查找文件的通用工具。

你的具體情況,你會做這樣的事情:

查找/主頁/海登/ myProject的/ -name基因 '* .fa'

這將找到在/ home 任何文件/ hayden/myProject /基因,其名稱以「.fa」結尾(即使它們是「基因」下的多個級別)

現在,如果您知道文件正好位於您的示例的位置, bash的glob'ing並將其稱爲:

/home/hayden/myProject/gene/*In/file.fa