gpt4 book ai didi

linux - 使用 Shell 运行多个子目录中的可执行程序文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:21 24 4
gpt4 key购买 nike

我有一个包含 361 个子目录的主目录。每个子目录内都有一个参数文件和一个可执行程序文件。可执行文件被编码为在可执行文件所在的目录中查找参数文件。 (所有子目录中的可执行文件相同。所有子目录中的参数文件都具有相同的文件名)

不是单独执行程序文件,而是有一个cshell命令让终端同时运行它们吗?

最佳答案

已更新

如果你的 Linux 太老了,没有 -execdir,你可以尝试这个:

find $(pwd) -name YourProgram -exec dirname {} \; | while read d; do cd "$d" && pwd; done

如果正确打印了程序需要运行的目录的名称,只需删除 pwd 并替换为您想要在该目录中完成的任何操作 - 大概是这样的:

find $(pwd) -name YourProgram -exec dirname {} \; | while read d; do cd "$d" && ./YourPrgram; done

原始答案

也许像这样:

find . -type f -name YourProgramName -execdir ./YourProgramName YourParameterFile \;

但请先备份并在使用前检查它是否正确。

-execdir 导致 find 更改为在运行命令之前找到的目录。

如果你的命令比较复杂,你可以这样做:

 find . -type f -name YourProgramName -execdir sh -c "command1; command2; command3" \;

检查它是否符合您的要求:

 find . -type f -name YourProgramName -execdir pwd \;

关于linux - 使用 Shell 运行多个子目录中的可执行程序文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108740/

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