절대 경로명보다 상대 경로명을 사용하면 어떤 이점이 있는지 알아보려고 합니다. 나는 각각이 무엇인지 알고 있습니다.
현재 위치까지의 경로가 길면 상대 경로명을 사용하는 것이 쉬운 것 같아요. 예를 들어 mkdir 명령은 다음과 같습니다.
mkdir backup/old ----> : 상대 경로 ----> 더 좋음
mkdir /home/me/backup/old ----> : 절대 경로
하지만 상대 경로 이름의 또 다른 장점(하나만 있음)을 찾으려고 노력했지만 찾을 수 없었습니다.
이 문제를 자세히 설명해주실 수 있나요?
답변1
- 타이핑이 더 빠르고 쉽기 때문에 실수할 가능성이 줄어듭니다.
- 심볼릭 링크 생성 시 이식 가능(위치 독립적)
답변2
절대 경로 이름에 비해 상대 경로 이름의 장점
상대 경로의 가장 큰 장점 중 하나는 표준 파일 시스템 레이아웃을 사용할 때 배포 패키지의 준비를 수용할 수 있다는 것입니다. 예를 들어, 의 바이너리에 의 /usr/bin/
데이터가 필요한 경우 of /usr/share/
는 바이너리가 어디에나 설치될 수 있고 바이너리가 해당 데이터를 찾을 수 있음을 의미합니다.DATADIR
../share/
이러한 상황은 를 사용할 때 자주 발생합니다 DESTDIR
. 패키지를 별도로 설치 /usr/bin
하거나 /usr/local/bin
사용하는 대신 및 와 동일한 위치에 있을 수 있습니다. 바이너리는 에 있고, 데이터는 에 있습니다.BINDIR
/opt/usr/
$(DESTDIR)$(PREFIX)
DESTDIR=/opt/
PREFIX=/usr
BINDIR=/opt/usr/bin
DATADIR=/opt/usr/bin/../share
또한보십시오DESTDIR
GNU 코딩 표준에서.
답변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
#.........