
絶対パス名より相対パス名を使用すると、どのような利点があるかを調べようとします。私はそれぞれが何であるかを知っています。
現在位置までのパスが長いと相対パス名を使うのが簡単だと思います。たとえば、mkdir コマンドは次のようになります。
mkdir backup/old ---->:相対パス---->より良い
mkdir /home/me/backup/old ----> : 絶対パス
しかし、相対パス名のもう1つの利点(1つしかありません)を見つけようとしましたが、見つかりませんでした。
この問題を詳しく説明できますか?
答え1
- タイピングが速くて簡単なので、間違いの可能性が減ります。
- シンボリックリンク生成時に移植可能(位置独立)
答え2
絶対パス名と比較した相対パス名の利点
相対パスの最大の利点の1つは、標準のファイルシステムレイアウトを使用するときに配布パッケージの準備に対応できることです。たとえば、バイナリに/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
#.........