Linux: 如何在层次结构中查找具有特定扩展名的文件并在找到时执行命令?

Linux: how to look for files with a certain extension in hierarchy and execute command whenever one is found?

我有一个目录层次结构,其名称不遵循某种模式。例如

parent

等等。

在某些此类目录中,有一个扩展名为 "gr" 的文件。我需要找到每个这样的文件,cd 到它的目录并执行以 .gr 文件作为参数的 "gnuplot" 命令。我尝试了以下嵌套两个查找命令,但内部命令的 {} 无法按我的需要工作。外部查找应该遍历每个目录,内部查找应该查找 .gr 文件是否存在。

find $parentDir -type d -exec sh -c '(cd {} && find . -maxdepth 1 -name *.gr -exec /usr/bin/gnuplot {} \;)' \;

也许这就是您要找的:

find . -type f -name "*.gr" -execdir /usr/bin/gnuplot {} \;

通读 man find 以获取其他有用信息。