2011-10-28 82 views
4

使用shell脚本,我想查找一个目录中的所有目录(不是递归地),以一个特定的前缀开始,然后遍历它们。伪例如:如何查找以特定前缀开头的目录中的所有目录?

array directories = find('/etc/build', 'project-build-*'); 
foreach (string directory in directories) 
{ 
    // directory == 'project-build-example-x64' 
    do_something_with('/etc/build/' + directory + '/Makefile'); 
} 

回答

5
for dir in "/etc/build/project-build-"*/ 
do 
    do_something_with "$dir"Makefile 
done 
+0

哇,这真的直观!谢谢。 –

+0

作为一个后续,如果没有匹配,这仍然执行一次与模式本身...我将如何解决这个问题? –

+1

设置'nullglob'选项。 'shopt -s nullglob' –

1

这里是find和替代xargs

find /etc/build/project-build-*/ -maxdepth 1 -name Makefile | xargs do_something 
相关问题