![다른 디렉터리에서 파일 실행하기 [닫기]](https://linux55.com/image/32833/%EB%8B%A4%EB%A5%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
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