我要在脚本中找到一个名为 Test 的可执行文件,它将路径作为参数,并执行它。我正在用这条线做这件事:
find -name Test -exec {} path \;
在测试中,我得到了一个execl:
execl("./Test1","Test1",(char*)0);
perror("Exec failed");
exit(EXIT_FAILURE);
其中 Test1 位于 Test 的同一目录中。手动执行测试一切正常,但使用上面写的这行我有一个 Exec失败:没有这样的文件或目录错误。
怎么了?
答案 0 :(得分:4)
从正在执行的目录Test
中查找执行find
。如果您可以更改Test的代码,则将Test1的绝对路径设置为:
execl("/home/myuser/some/path/Test1","Test1",(char*)0);
perror("Exec failed");
exit(EXIT_FAILURE);
或者您可以使用-execdir
代替-exec
:
find -name Test -execdir {} path \;
从查找联系人页面:
-execdir :与-exec类似,但指定的命令是从子目录运行的 包含匹配的文件,通常不是目录 你开始找到了