查找所有子文件夹中的文件并将其用作输入

查找所有子文件夹中的文件并将其用作输入

我有一堆子文件夹,每个子文件夹都包含一个输入文件an_*和一个可执行文件run。在一个子文件夹中执行一次的命令行是./run <an_*.

我想要做的是找到包含文件的所有子文件夹并作为输入an_*执行。我最好的选择是: 但这行不通。runan_*find -name an_* -execdir ./run <'{}' \;

答案1

如果您只是在 find 命令行上删除输入重定向< ,shell 将尝试将输入重定向到寻找。您想要的是在 find 执行的命令上发生重定向。但find不知道如何进行重定向,因此您必须明确要求它运行 shell 来解析您给出的命令。像这样的东西:

find -name "an_*" -execdir sh -c "./run < {}" \;

相关内容