让二进制文件认为它在另一个目录中

时间:2011-11-01 09:24:17

标签: bash filesystems executable

在Linux系统上,我有一个二进制文件(bin.exe)需要读取输入文件(input.cfg),其中指定了其他数据文件(data.txt)的名称。通常二进制文件,输入文件和数据文件都在同一目录中。现在,出于组织原因,我需要二进制文件在$ SOMEPATH / bin和$ SOMEPATH / input中的输入和数据文件。

我不知道该怎么做。如果我试试

$SOMEPATH/bin/bin.exe $SOMEPATH/input/input.cfg

我得到了

error, "data.txt" not found

一种解决方案是包括" data.txt"的相对路径的绝对值。在input.cfg中,但二进制文件不接受这个。

我想到了某种方式愚弄二进制文件以便它认为它在$ SOMEPATH / input中,所以我只是这样做

$SOMEPATH/bin/bin.exe input.cfg

它有效,但我不知道这是否可行。任何提示?

1 个答案:

答案 0 :(得分:3)

(cd $SOMEPATH/input && $SOMEPATH/bin/bin.exe input.cfg)

这假设程序依赖当前工作目录来查找文件。如果程序努力在可执行文件的同一位置找到它们,例如通过咨询/proc/<pid>/exe,那么您可能会运气不佳。