다른 디렉터리에서 파일 실행하기 [닫기]

다른 디렉터리에서 파일 실행하기 [닫기]

mainfolderexecution스크립트가 포함된 하위 디렉터리가 있는 디렉터리가 있습니다 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

관련 정보