Unix/Linux - 절대 경로 이름에 비해 상대 경로 이름의 장점

Unix/Linux - 절대 경로 이름에 비해 상대 경로 이름의 장점

절대 경로명보다 상대 경로명을 사용하면 어떤 이점이 있는지 알아보려고 합니다. 나는 각각이 무엇인지 알고 있습니다.

현재 위치까지의 경로가 길면 상대 경로명을 사용하는 것이 쉬운 것 같아요. 예를 들어 mkdir 명령은 다음과 같습니다.

mkdir backup/old ----> : 상대 경로 ----> 더 좋음

mkdir /home/me/backup/old ----> : 절대 경로

하지만 상대 경로 이름의 또 다른 장점(하나만 있음)을 찾으려고 노력했지만 찾을 수 없었습니다.

이 문제를 자세히 설명해주실 수 있나요?

답변1

  1. 타이핑이 더 빠르고 쉽기 때문에 실수할 가능성이 줄어듭니다.
  2. 심볼릭 링크 생성 시 이식 가능(위치 독립적)

답변2

절대 경로 이름에 비해 상대 경로 이름의 장점

상대 경로의 가장 큰 장점 중 하나는 표준 파일 시스템 레이아웃을 사용할 때 배포 패키지의 준비를 수용할 수 있다는 것입니다. 예를 들어, 의 바이너리에 의 /usr/bin/데이터가 필요한 경우 of /usr/share/는 바이너리가 어디에나 설치될 수 있고 바이너리가 해당 데이터를 찾을 수 있음을 의미합니다.DATADIR../share/

이러한 상황은 를 사용할 때 자주 발생합니다 DESTDIR. 패키지를 별도로 설치 /usr/bin하거나 /usr/local/bin사용하는 대신 및 와 동일한 위치에 있을 수 있습니다. 바이너리는 에 있고, 데이터는 에 있습니다.BINDIR/opt/usr/$(DESTDIR)$(PREFIX)DESTDIR=/opt/PREFIX=/usrBINDIR=/opt/usr/binDATADIR=/opt/usr/bin/../share

또한보십시오DESTDIRGNU 코딩 표준에서.

답변3

configure오픈 소스 소프트웨어에 대한 스크립트를 받으세요 .

예를 들어, 2개의 하위 모듈이 있는 git repo가 ​​있고 new_editor이에 대한 설치 스크립트를 작성하는 경우 다음과 같이 작성할 수 없습니다.

#!/bin/bash
#.........
/home/kashyap/workspaces/new_editor/module1/install.sh
/home/kashyap/workspaces/new_editor/module2/install.sh
#.........

너는 써야 해

#!/bin/bash
#.........
./module1/install.sh
./module2/install.sh
#.........

관련 정보