쉘 스크립트의 상대 경로 이름은 어떤 경로를 기준으로 합니까? [복사]

쉘 스크립트의 상대 경로 이름은 어떤 경로를 기준으로 합니까? [복사]

Bash 스크립트에 상대 경로(파일, 디렉터리 지정...)가 포함된 경우 경로는 다음과 관련됩니다.

  • Bash 스크립트의 상위 디렉터리의 경로 이름, 또는
  • bash 스크립트를 실행 중인 현재 디렉토리는 무엇입니까?

Python 스크립트, Java 프로그램, C 프로그램, C++ 프로그램에서 유사한 질문을 하면... 동일한 대답이 있습니까?

감사해요.

연결된 질문과 유사점이 없습니다. 내가 묻는 것은 프로그램의 상대 경로가 무엇을 기준으로 하는가입니다.

답변1

상위 디렉터리는 프로젝트가 포함된 디렉터리입니다.

  • 파일의 경우 상위 경로는 .파일이 있는 위치이기 때문입니다. 파일 자체는 ./file.
  • 디렉터리의 경우 상위 디렉터리 는 디렉터리 자체 ..입니다 ..

이는 Linux의 일반적인 표기법이며 널리 알려져 있습니다. 이론적으로 일부 언어에서는 다른 표기법을 사용할 수도 있지만 예를 들 수는 없습니다.

이것은 두뇌의 힘을 통해 상대 경로를 쉽게 추론할 수 있는 절대 경로를 사용하는 예입니다.

$ echo 'readlink -f "$0"' > script
$ ln -s script link
$ chmod +x script
$ ./script 
/home/tomas/x/script
$ ./link 
/home/tomas/x/script
$ readlink -f .
/home/tomas/x
$ readlink -f ..
/home/tomas

관련 정보