从不同目录运行文件

从不同目录运行文件

mainfolder我有一个带有子目录的目录execution,其中包含configure脚本。我可以切换到该execution目录并运行./configure,它工作正常。现在我正在尝试弄清楚如何configure在我处于mainfolder.我试过:

./configure /execution

和:

./configure execution

但都不起作用。我还使用从根目录或从用户目录开始的完整路径尝试了相同的操作,如下所示:

./configure /home/etc/user/mainfolder/execution
./configure user/mainfolder/execution

我总是收到这样的消息:

bash: ./configure: 没有这样的文件或目录

最后,我尝试了:

/home/etc/user/mainfolder/execution/configure 
. /home/etc/user/mainfolder/execution/configure

两者都给了我错误:

sed:无法读取 makefile.in:没有这样的文件或目录

我怎样才能做到这一点?

答案1

首先确认配置脚本存在于您认为的位置。其次确保它是可执行的:

$ ls -l ./configure 
-rwxrwxr-x 1 saml saml 100 Jun  9 05:11 ./configure

如果两项检查都正常,那么您可能想尝试configure通过首先将目录更改为/mainfolder/execution然后运行configure如下来尝试运行:

$ cd /mainfolder/execution
$ ../configure

您可能还想尝试一下这种方式:

$ cd /mainfolder
$ ./configure execution

编辑#1

根据OP留下的评论,以下目录结构似乎是他所描述的:

$ tree -f
.
`-- /mainfolder
    `-- /mainfolder/execution
        `-- /mainfolder/execution/configure

答案2

在 *nix 中,/始终是整个文件系统的根目录,并且.始终指当前工作目录。

每个以 开头的路径/都是绝对路径。每个以 开头的路径.都是相对路径。

因此/home/...可能是正确的,因为该目录位于根目录中,而/excecution可能是错误的,因为该目录位于根目录中不是位于根目录中,但位于/home/....

如果您说,您尝试运行当前工作目录 ( ) 中的./configure文件。configure.

该错误只是表明当前工作目录中No such file or directory没有指定的文件。configure

您可以用来pwd显示当前工作目录是什么。用于ls显示那里存在哪些文件。用于cd更改当前工作目录。

帮助您解决实际问题。你需要说出你想要做什么。你为什么想跑configure?它应该做什么?为什么你认为需要指定执行目录?

答案3

问题是我必须运行该文件,但不要更改当前目录。所以我尝试了这个并且工作了:

cd execution/ && ./configure

相关内容