gpt4 book ai didi

bash - 如何在 bash 中对具有特定扩展名的文件递归运行命令?

转载 作者:行者123 更新时间:2023-12-02 03:55:29 25 4
gpt4 key购买 nike

我想从根文件夹递归运行命令,这将影响该根文件夹下具有特定扩展名的所有文件。

这是命令

blender b03.blend --background --python myScript.py

我想对每个具有 .blend 扩展名的文件运行此命令,而不是 b03.blend 文件。

最佳答案

尝试:

find . -name '*.blend' -exec blender {} --background --python myScript.py \;

说明:

  • find任何与 *.blend 匹配的文件- 使用单引号很重要,这样您的 shell 就不会针对当前目录中的任何文件展开此引号
  • 然后对于找到的每个文件,执行 blender {} --background --python myScript.py{}替换为文件名,例如 some/sub/tree/file.blend .
  • \;将终止-exec陈述。 \用于转义; ,这样 shell 就不会吸收它并将该行拆分为多个命令。
  • blender 的所有实例将从初始工作目录运行,因此 blender必须能够正确处理不在“此处”的文件,并同样访问 myScript.py这不是 *.blend 的邻居文件。

注意:我不熟悉 blend ,但如果它将进入后台并需要一些时间来处理(由于 --background ),那么您可能会压垮您的机器...您可能更喜欢一次处理一个文件,或者可能将作业分解为少数可以连续运行的独立作业(每个项目都完成)...对于奖励积分,请查看类似 make 的内容可以在有限制的情况下轻松运行并发操作(例如: make -j 8 一次最多运行 8 命令)。

关于bash - 如何在 bash 中对具有特定扩展名的文件递归运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com