2015-06-19 201 views
0

这是一个相当具体的问题,但基本上我想知道的是,如果无论如何要列出一个目录下的内容我搜索。如何在查找目录后列出子目录的内容

我的情况是,我有一个父目录有大量的子目录,我想搜索它们是否包含某个特定字符串的目录。既然它太大了,我一定要把我的深度限制在两个以避免不必要的搜索。第一个命令是这样的:

find . -maxdepth 2 -type d -name "MWACluster15"

这将通常的30场比赛的顺序返回的东西。然后我想要做的就是列出其中一个子目录的内容,称为日志。我想,也许做一些像

find . -maxdepth 2 -type d -name "MWACluster15" | xargs ls logs/

可能做的伎俩,但它只是返回目录的直接内容。我想要列出的内容MWACluster15/logs/

任何人都知道如果这是可能的,而不必写一个bash脚本?

回答

4

我想你可以使用这样的事情:

find . -maxdepth 2 -type d -name "MWACluster15" -execdir ls {}/logs/ \; 

-execdir在你感兴趣的目录中找到的目录中执行命令。 {}是一个占位符,用目录名称“MWACluster15”替代。

+0

非常感谢,最后的'\;'做了什么? – sreya

+1

它只是'-execdir'语法的一部分(它终止了为每个结果执行的命令)。或者,如果您想要将所有目录同时传递给'ls',则可以使用'+'而不是'\;' –

相关问题