2016-07-11 77 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