3

我必须使用脚本找到一个名为Test的可执行文件,该可执行文件将路径作为参数,并执行它。我用这条线做这个:

find -name Test -exec {} path \;

测试中,我得到了一个 execl:

    execl("./Test1","Test1",(char*)0);
    perror("Exec failed");
    exit(EXIT_FAILURE);

其中Test1与Test位于同一目录中。“手动”执行测试 一切正常,但使用上面写的行我有一个 Exec failed: No such file or directory错误。

怎么了 ?

4

1 回答 1

4

findTest从您正在执行的目录中执行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 类似,但指定的命令是从包含匹配文件的子目录运行的,通常不是您开始查找的目录

于 2012-07-30T13:47:00.433 回答