.sh
구문을 통해 ./file.sh
파일을 실행 하려고 합니다 . 나는 실수로 내가 달릴 수 있다고 생각했습니다.
./usr/bin/foo/bar.sh
그러나 다음을 "No such file or directory"
실행하면 .
cd /usr/bin/foo && ./bar.sh
완벽하게 작동합니다. 첫 번째 방법이 작동하지 않는 이유는 무엇입니까?
(저는 루분투 14를 사용하고 있습니다)
답변1
이것. 디렉터리 경로의 시작 부분은 현재 작업 디렉터리에서 시작하는 상대 경로임을 나타냅니다. 그렇지 않은 경우 파일 시스템 루트에서 시작됩니다.
/usr/bin/foo/bar.sh
따라서 이전 지점 없이 실행 해야 합니다 .
이 점은 파일과 동일한 디렉토리에 있는 경우에만 필요하며, 디렉토리를 추가하지 않고도 어디에서나 실행할 수 있는 동일한 이름을 가진 /bin에 있는 최종 기존 파일과 구별하기 위해 필요합니다.
답변2
포인트가 중요합니다.
바꾸다:
./usr/bin/foo/bar.sh
사용:
/usr/bin/foo/bar.sh
논의하다
고려하다:
./usr/bin/foo/bar.sh
이는 다음으로 시작됩니다.현재의디렉토리를 선택 ./
하고 하위 디렉토리를 찾으세요 usr
. 현재 디렉터리에 해당 하위 디렉터리가 없으면 다음 메시지가 표시됩니다.
bash: ./usr/bin/foo/bar.sh: No such file or directory
이와 대조적으로 다음을 고려하십시오.
cd /usr/bin/foo && ./bar.sh
이것은 현재 디렉토리를 완전히 무시하고 /usr/bin/foo
.
답변3
.
현재 디렉터리를 나타냅니다. 다음과 같이 실행해 보세요.
/usr/bin/foo/bar.sh
앞에 a를 넣으면 .
다음을 찾습니다.
whateverdirectory/yourein/usr/bin/foo/bar.sh