如何递归地转到每个文件夹并执行具有相同名称的 shell 脚本?

How can I recursively go to every folders and execute shell script with the same name?

我有这个目录。

.
├── animation
│   ├── animation-events
│   │   ├── app.js
│   │   ├── app.mustache.json
│   │   ├── create_view.sh
│   │   └── assets
│   │       └── dummy_character_sprite.png
│   └── change-frame
│       ├── app.js
│       ├── app.mustache.json
│       ├── create_view.sh
│       └── assets
│           └── dummy_character_sprite.png
├── app.css
├── app.mustache
├── bunch_of_functions.js
├── decorators.js
├── create_all_views.sh
└── displaying-a-static-image
    ├── app.js
    ├── app.mustache.json
    ├── create_view.sh
    └── assets
        └── piplup.png

我想让 create_all_views.sh 执行子目录中的所有 create_view.sh。我怎样才能实现这样的目标?

正如您在 Ubuntu 中一样,您拥有 find 的 GNU 实现, 其中有 -execdir 选项, 你可以这样做:

find path/to/dir -name create_view.sh -execdir ./create_view.sh \;

也就是说, 对于它在目录树中找到的每个 create_view.sh 文件, 它将在该文件的目录中执行 ./create_view.sh